module BottomFromInnerLambda where expensive :: Int -> Int expensive 0 = 0 expensive n = expensive n {-# NOINLINE expensive #-} -- We could be saying "b" -- but we are saying "" -- We should not be saying "b" f :: Int -> Int -> Int f x = expensive x `seq` (\y -> error (show y))