let op_loc mop pop l1 l2=
match l1,l2 with
| Mloc l1 , Mloc l2 -> mop l1 l2
| Path xp, Path yq | PRef xp, PRef yq | ARef xp,ARef yq
when root_equal xp.p_root yq.p_root ->
pop (sizeof_path xp.p_off) (sizeof_path yq.p_off)
| ARpar (xp,xn),ARpar (yq,ym)
| PRpar (xp,xn), PRpar(yq,ym)
when root_equal xp.p_root yq.p_root && xn = ym ->
pop (sizeof_path xp.p_off) (sizeof_path yq.p_off)
| l1,l2 -> mop (mloc_of_loc l1) (mloc_of_loc l2)