(* dom1 \ dom2 *)
let domain_diff dom1 dom2 =
(* let domain_diff = Domain.diff *)
- let is_in_dom2 =
- List.fold_left (fun pred elt -> (fun elt' -> elt' = elt || pred elt'))
- (fun _ -> false) dom2
+ let is_in_dom2 elt =
+ List.exists
+ (function
+ | Symbol (symb, 0) ->
+ (match elt with
+ Symbol (symb',_) when symb = symb' -> true
+ | _ -> false)
+ | item -> elt = item
+ ) dom2
in
List.filter (fun (_,elt) -> not (is_in_dom2 elt)) dom1