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)