-- Hindley-Milner type inference is exponential -- Demo. test = let f1 x = (x, x) f2 x = f1 (f1 x) f3 x = f2 (f2 x) f4 x = f3 (f3 x) f5 x = f4 (f4 x) f6 x = f5 (f5 x) -- This is the killer! in f5 id