[Haskell-cafe] Embedded Functions in Algebraic Data Types?