jon.recoil.org

Module Flambda2_simplify.Rebuilt_expr

The type of expressions constructed by the simplifier.

Using a type that is different from Expr.t enables us to robustly avoid rebuilding terms during simplification when unnecessary, e.g. during speculative inlining tests.

Note that this module relies on the UA.t values passed in to determine the semantics of values of type t. As such, values of type t must not be passed between contexts where the value of UA.do_not_rebuild_terms differs.

type t

This function may only be used when rebuilding terms.

val term_not_rebuilt : Flambda2_simplify.Rebuilt_expr.t

This should only be used by Expr_builder to make sure occurrences of function slots and value slots are recorded.

Apply_cont expressions are always rebuilt to allow optimisations in Simplify_switch_expr and Simplify_let_cont_expr.

module Function_params_and_body : sig ... end
module Continuation_handler : sig ... end