M.Property(true,M.RefineExact,[n],[],(cons false c),[],[],false,(M.Const ""))
in
let property_only n cl =
- let cll = List.map (cons true) cl in
+ let rec build = function
+ | [] -> []
+ | c :: tl ->
+ let r = (cons true) c in
+ if r = [] then build tl else r :: build tl
+ in
+ let cll = build cl in
M.Property(false,M.RefineExact,[n],[],!univ,cll,[],false,(M.Proj(None,(M.AVar "obj"))))
in
let rec aux = function
| [head] -> (f head)
| head :: tail -> let t = (iter f g tail) in g (f head) t
in
- prerr_endline "(** Compose: received constraints **)";
- U.mathql_of_specs prerr_string cl; flush stderr;
+ (* prerr_endline "(** Compose: received constraints **)";
+ U.mathql_of_specs prerr_string cl; flush stderr; *)
aux cl;
let must_query =
if ! must = [] then