Комментируя другой вопрос, я обнаружил очевидный разрыв в ссылочной прозрачности. В ghci:
> f g h = g 'seq' h 'seq' \x -> g (h x)
> seq (f undefined id) ()
()
> seq (undefined 'seq' id 'seq' \x -> undefined (id x)) ()
*** Exception: Prelude.undefined
CallStack (from HasCallStack):
error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err
undefined, called at <interactive>:3:14 in interactive:Ghci9
Почему не первое дно? (GHC 8.2.2 в случае, если это имеет значение - на данный момент у меня нет других версий, установленных на этой машине).