t ::=
x
l x:T. t
t t
true
false
if t then t else t
0
succ t
pred t
iszero t
{l_i=t_i} for i in 1..n
t.l
let x = t in t
ref t
!t
t := t
t; t
fix t
l
v ::=
x
l x:T. t
true
false
{l_i=v_i} for i in 1..n
nv
l
nv ::=
0
succ nv
T ::=
Bool
Nat
{l_i:T_i} for i in 1..n
T -> T
Ref T
Source T
Sink T
Γ ::=
Φ
Γ, x:T
TODO
TODO