let init_solver_closure ?(buffer=false) pool closure =
let map = new intprojection (List.length closure) in
List.iter map#add closure;
let pool = init_solver_pool map pool closure in
{ constraints = init_solver_cache ~buffer pool ; map = map }