coercions
in
(HExtlib.flatten_map
- (fun (_,t,ul) -> List.map (fun u -> src,[uri; u],t) ul) c_from_tgt) @
+ (fun (_,t,ul) ->
+ if CoercDb.eq_carr ~exact:true src t then [] else
+ List.map (fun u -> src,[uri; u],t) ul) c_from_tgt) @
(HExtlib.flatten_map
- (fun (s,_,ul) -> List.map (fun u -> s,[u; uri],tgt) ul) c_to_src) @
+ (fun (s,_,ul) ->
+ if CoercDb.eq_carr ~exact:true s tgt then [] else
+ List.map (fun u -> s,[u; uri],tgt) ul) c_to_src) @
(HExtlib.flatten_map
(fun (s,_,u1l) ->
HExtlib.flatten_map
(fun (_,t,u2l) ->
HExtlib.flatten_map
(fun u1 ->
+ if CoercDb.eq_carr ~exact:true s t then [] else
List.map
(fun u2 -> (s,[u1;uri;u2],t))
u2l)