[Compiler.result] size: 9 def g._redArg (n : Nat) (a : lcAny) (f : lcAny → lcAny) : lcAny := let zero := 0; let isZero := Nat.decEq n zero; cases isZero : lcAny | Bool.true => return a | Bool.false => let one := 1; let n.1 := Nat.sub n one; let _x.2 := g._redArg n.1 a f; let _x.3 := f _x.2; return _x.3 [Compiler.result] size: 1 def g (α : ◾) (n : Nat) (a : lcAny) (b : lcAny) (f : lcAny → lcAny) : lcAny := let _x.1 := g._redArg n a f; return _x.1 [Compiler.result] size: 1 def h._closed_0 : Nat → Nat := let _x.1 := double; return _x.1 [Compiler.result] size: 4 def h (n : Nat) (a : Nat) : Nat := let _x.1 := h._closed_0; let _x.2 := g._redArg n a _x.1; let _x.3 := g._redArg a n _x.1; let _x.4 := Nat.add _x.2 _x.3; return _x.4