Module Redexpr.Interp

type ('constr, 'evref, 'pat) interp_env = {
interp_occurrence_var : Names.lident -> int list;
interp_constr : Environ.env -> Evd.evar_map -> 'constr -> Evd.evar_map * EConstr.constr;
interp_constr_list : Environ.env -> Evd.evar_map -> 'constr -> Evd.evar_map * EConstr.constr list;
interp_evaluable : Environ.env -> Evd.evar_map -> 'evref -> Evaluable.t;
interp_pattern : Environ.env -> Evd.evar_map -> 'pat -> Pattern.constr_pattern;
interp_evaluable_or_pattern : Environ.env -> Evd.evar_map -> 'evref -> (Evaluable.tPattern.constr_pattern) Util.union;
}
val interp_red_expr : ('constr'evref'pat) interp_env -> Environ.env -> Evd.evar_map -> ('constr'evref'patint Locus.or_var) Genredexpr.red_expr_gen -> Evd.evar_map * red_expr