import Lean open Lean Compiler LCNF @[noinline] def double (x : Nat) := x + x set_option pp.funBinderTypes true set_option trace.Compiler.saveMono true in def g (n : Nat) (a b : α) (f : α → α) := match n with | 0 => a | n+1 => f (g n a b f) set_option trace.Compiler.saveMono true in def h (n : Nat) (a : Nat) := g n a a double + g a n n double