Module Mardukml_lib.Lambda

Copyright 2026, Kirill K. Smirnov

SPDX-License-Identifier: LGPL-3.0-or-later

type lterm =
  1. | Var of string
  2. | Int of int
  3. | Unit
  4. | App of lterm * lterm
  5. | Abs of string * lterm
  6. | Exc of lterm
  7. | Try of lterm * (string * lterm) list
val ltrue : lterm
val lfalse : lterm
val fix_comb_no : lterm
val fix_comb_cbv : lterm
val fix_comb_cbn : lterm
val try_stdlib : lterm -> lterm option
val fresh_var : string list -> string
val lterm_to_string : lterm -> string
val lterm_to_string_typed : lterm -> (Ast.qf_mltype * 'a list) -> string
val vars : lterm -> string list
val fvars : lterm -> string list
val rename_free_var : lterm -> string -> string -> lterm
val subst : lterm -> string -> lterm -> lterm
val beta_step_in_cbv : lterm -> lterm option
val beta_reduce : ('a -> 'a option) -> 'a -> 'a