match acc with
| None -> None
| Some(bag,maxvar,(id,lit,vl,p),subst) ->
match acc with
| None -> None
| Some(bag,maxvar,(id,lit,vl,p),subst) ->
with FoUnif.UnificationFailure _ ->
match rewrite_eq ~unify l r ty vl table with
| Some (id2, dir, subst1) ->
with FoUnif.UnificationFailure _ ->
match rewrite_eq ~unify l r ty vl table with
| Some (id2, dir, subst1) ->
subst1 id id2 (pos@[2]) dir
with
| Some ((bag, maxvar), c), r ->
subst1 id id2 (pos@[2]) dir
with
| Some ((bag, maxvar), c), r ->
Some(bag,maxvar,c,newsubst)
| None, _ -> assert false)
| None ->
Some(bag,maxvar,c,newsubst)
| None, _ -> assert false)
| None ->