let rec pointer_of_loc loc : D.pointer =
      match loc with
        | L0addr v -> Hlib.addr (D.Xindex.get_ind v)
        | L0depl (l, Pidx i) -> Hlib.shift_index (pointer_of_loc l) i
        | L0depl (l, Pfield f) ->
            let lt = pointer_of_loc l in
            let tf = D.Findex.get_ind f in
            if f.fcomp.cstruct
            then Hlib.shift_field lt tf else Hlib.shift_ufield lt tf
        | L0ptr p -> p
        | L0shift (l,i) -> Hlib.shift_pointer (pointer_of_loc l) i