let mvalue_of_value = function
    | V_int (i,t) -> M.V_int (i,t)
    | V_float (f,t) -> M.V_float (f,t)
    | V_array (a,t) -> M.V_array(a,t)
    | V_record (c,t) -> M.V_record (c,t)
    | V_union (c,t) -> M.V_union (c,t)
    | V_pointer (te,Mloc l) -> M.V_pointer (te, l)
    | V_pointer (_,Path _) -> assert false