let init_map closure univ = if List.length closure > 0 then begin let map = new intprojection (List.length closure) in List.iter map#add closure; map end else new identity