-
Notifications
You must be signed in to change notification settings - Fork 0
/
lambda.mli
executable file
·50 lines (33 loc) · 1012 Bytes
/
lambda.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
type term =
| Var of Base.id
| Lam of Base.id * term
| LitNum of float
| LitBool of bool
| LitString of string
| App of term * term
| Oper of Base.op * term * term
| If of term * term * term
| Tuple of term list
| Project of int * term
| Let of Base.id * term * term
| Fix of Base.id * Base.id * term
| Lazyfix of Base.id * term
| Cons of term * term
| Head of term
| Tail of term
| Lazy of term
| Force of term
| Thunk of term
| Run of term
| Con of Base.conid * term
| Merge of term * term
| Case of term * (Base.conid * Base.id * term) list
val let_tuple : Base.id list -> Base.id -> term -> term
val let_lazy_tuple : Base.id list -> Base.id -> term -> term
val let_stream : Base.id * Base.id -> Base.id -> term -> term
val let_dom : Base.id * Base.id -> Base.id -> term -> term
val rename_term : Base.id -> Base.id -> term -> term
val print_term : Format.formatter -> term -> unit
val fact : term
val fact_tr : term
val countdown : term