Hi Andrew, Here's an example that might help:
> import Data.Typeable > > data Test a = Test Int > > instance Typeable a => Show (Test a) where > show t@(Test i) = "Test " ++ show (typeOf (ty t)) ++ " " ++ show i > where > ty :: Test a -> a, > ty = undefined and its use: *Main> show (Test 10 :: Test Int) "Test Int 10" *Main> show (Test 10 :: Test String) "Test [Char] 10" --trevor On Wed, 2008-08-06 at 19:09 +0100, 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? > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
