start :: fn { one := fn -> int { ret 1 } add := fn a: int, b: int -> int { ret a + b } add(one(), one()) <=> 2 add(add(one(), one()), one()) <=> 3 add(one(), add(one(), one())) <=> 3 }