package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Abstract syntax tree for the lambda calculus

Abstract syntax tree

type 'm program = 'm expr Shared_ast.program

Language terms construction

val option_enum : Shared_ast.EnumName.t
val make_none : 'm Shared_ast.mark -> 'm expr Shared_ast.boxed
val make_some : 'm expr Shared_ast.boxed -> 'm expr Shared_ast.boxed
val make_matchopt_with_abs_arms : 'm expr Shared_ast.boxed -> 'm expr Shared_ast.boxed -> 'm expr Shared_ast.boxed -> 'm expr Shared_ast.boxed

e' = make_matchopt'' pos v e e_none e_some Builds the term corresponding to match e with | None -> fun () -> e_none |Some -> fun v -> e_some.

Special symbols

val handle_default_opt : Shared_ast.untyped expr Shared_ast.Var.t