List.flatten (
List.rev_map
(fun (_,ty) -> domain_rev_of_term [] ty) cl) @
- domain_rev_of_term [] ty) tyl)
+ domain_rev_of_term [] ty) tyl) in
+ let dom =
+ List.fold_left
+ (fun dom (_,ty) ->
+ domain_rev_of_term [] ty @ dom
+ ) dom params
in
List.filter
(fun name ->
let dom =
List.flatten
(List.rev_map (fun (_,ty) -> domain_rev_of_term [] ty) fields) in
- let dom' =
+ let dom =
List.filter
(fun name->
not ( List.exists (fun (name',_) -> name = Id name') params
|| List.exists (fun (name',_) -> name = Id name') fields)
) dom
in
- dom' @ domain_rev_of_term [] ty
+ List.fold_left
+ (fun dom (_,ty) ->
+ domain_rev_of_term [] ty @ dom
+ ) (dom @ domain_rev_of_term [] ty) params
in
rev_uniq domain_rev