package ocaml-base-compiler

  1. Overview
  2. Docs

A module for the manipulation of terms where the recomputation of free variable sets is to be kept to a minimum.

type 'a t
val of_defining_expr_of_let : let_expr -> named t

O(1) time.

val of_body_of_let : let_expr -> expr t

O(1) time.

val of_expr : expr -> expr t

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 of_named : named -> named t
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 create_let_reusing_both : Variable.t -> named t -> expr t -> expr

O(1) time.

val expr : expr t -> named t

The equivalent of the Expr constructor.

val contents : 'a t -> 'a
val free_variables : _ t -> Variable.Set.t

O(1) time.