
8 Aug
2008
8 Aug
'08
2:58 p.m.
On Wed, 6 Aug 2008, Andrew Coppin wrote:
I just (re)discovered that I can do things like
data Foo x = Foo Int Int
Now "Foo Int" and "Foo Double" are, as far as the type checker cares, two completely different types, even though in fact they are the same. This is actually Quite Useful, in the particular case I'm working on.
Here's the thing though... How do I get it so that "Foo Int" and "Foo Double" produce slightly different strings when printed?
The non-hacky Haskell 98 solution is: class ShowPhantom a where showPhantom :: Foo a -> String You can call this from the 'show' implemention for 'Foo a'.