let init_solver_pool map pool closure =
let cudfpool = strip_cudf_pool pool in
let solverpool =
Array.init (List.length closure) (fun sid ->
let uid = map#inttovar sid in
let (dll,cl) = cudfpool.(uid) in
let sdll =
List.map (fun (vpkgs,uidl) ->
(vpkgs,List.map map#vartoint uidl)
) dll
in
let scl =
List.map (fun (vpkg,uidl) ->
let l =
List.filter_map (fun uid ->
try Some(map#vartoint uid)
with Not_found -> begin
debug "Dropping Conflict %s" (Cudf_types_pp.string_of_vpkg vpkg) ;
None
end
) uidl
in
(vpkg, l)
) cl
in
(sdll,scl)
)
in SolverPool solverpool