Flambda.With_free_variables
A module for the manipulation of terms where the recomputation of free variable sets is to be kept to a minimum.
Takes the time required to calculate the free variables of the given term (proportional to the size of the term, except that the calculation for Let
is O(1)).
val create_let_reusing_defining_expr : Variable.t -> named t -> expr -> expr
Takes the time required to calculate the free variables of the given expr
.
val create_let_reusing_body : Variable.t -> named -> expr t -> expr
Takes the time required to calculate the free variables of the given named
.
val contents : 'a t -> 'a
val free_variables : _ t -> Variable.Set.t
O(1) time.