jon.recoil.org

Module Flambda.Let_expr

The alpha-equivalence classes of expressions that bind variables; and the expressions that bind symbols and code IDs (which are not treated up to alpha equivalence).

Variables have normal syntactic scoping. Symbols and code IDs are treated as in scope in all parts of the term dominated by the corresponding Let-binding.

The defining expression of the Let.

Look inside the Let by choosing a member of the alpha-equivalence class.

module Pattern_match_pair_error : sig ... end

Look inside two Lets by choosing members of their alpha-equivalence classes, using the same bound variables for both. If they are both dynamic lets (that is, they both bind variables), this invokes dynamic having freshened both bodies; if they are both static (that is, they both bind symbols), this invokes static with the bodies unchanged, since no renaming is necessary.