
On 10/27/06, David House
On 27/10/06, David House
wrote: heteroList' = [MkT' 5, MkT' (), MkT' True] main = mapM_ print heteroList'
{- prints: 5 () True -}
Sorry, the definition of main is a bit off. It should read:
main = mapM_ (\(MkT' x) -> print x) heteroList'
Of course you have to unpack the MkT' first (or define a Show instance for T', noting that you can't derive anything on existentials).
So you specified that the types which T' wraps up should be instances of Show, so to me it makes sense that you should be able to derive Show in a way similar to how newtype deriving works. But perhaps there is a subtlety that I'm missing? I mean, to make an instance of Show I'm just going to type something trivial like this: instance Show T' where show (MkT' a) = "MkT' " ++ show a Or perhaps, since I'm writing it by hand I'd omit the "MkT' " and just show the a. thanks, Jason