sig
  type float_mode = Mlmpfr_wrapper.mpfr_rnd_t
  type big_float = Mlmpfr_wrapper.mpfr_float
  type value = private {
    v_desc : Pinterp_core.Value.value_desc;
    v_ty : Ty.ty;
  }
  and field
  and value_desc =
      Vconstr of Expr.rsymbol option * Expr.rsymbol list *
        Pinterp_core.Value.field list
    | Vnum of BigInt.t
    | Vreal of Big_real.real
    | Vfloat_mode of Pinterp_core.Value.float_mode
    | Vfloat of Pinterp_core.Value.big_float
    | Vstring of string
    | Vbool of bool
    | Vproj of Term.lsymbol * Pinterp_core.Value.value
    | Varray of Pinterp_core.Value.value array
    | Vpurefun of Ty.ty * Pinterp_core.Value.value Pinterp_core.Mv.t *
        Pinterp_core.Value.value
    | Vfun of Pinterp_core.Value.value Term.Mvs.t * Term.vsymbol * Expr.expr
    | Vterm of Term.term
    | Vundefined
end