f :: Int → Int

f x = let g y = x * x + y in g 3 + g 4

이런 함수가 있을 때,

x * x를 g의 바인딩 바깥으로 빼내야지,

full-laziness를 구현할 수 있음.

f x = let _1 = x * x in let g y = _1 + y in g 3 + g 4

그런데 구현력이 모자라서 잘 안됨.