-- Applications with lets and cases in function position module test037; import Stdlib.Prelude open; f (l : List ((Nat → Nat) → Nat → Nat)) : Nat := case l of { | x :: _ := x | nil := id } (let y : Nat → Nat := id; in (let z : (Nat → Nat) → Nat → Nat := id; in case l of { | _ :: _ := id | _ := id } z) y) 7; main : Nat := f (λ {| x y := x y + 2} :: nil);