let cast_loc_to_loc t1 t2 = function
    | Mloc l -> Mloc (M.cast_loc_to_loc t1 t2 l)
    | ARef p -> debug "[cast_loc_to_loc %a from %a to %a]"
        pp_path p !Ast_printer.d_type t1 !Ast_printer.d_type t2;
          index (ARef p) (object_of t2) F.i_zero          
    | Path _ | PRef _ | PRpar _ | ARpar _ ->
        WpLog.not_yet_implemented
          "Cast from %a to %a of over a logical-variable (try -wp-no-logicvar)"
          !Ast_printer.d_type t1 !Ast_printer.d_type t2