[Haskell-cafe] How to write type-level lambda-abstractions at the value level