On 10/27/06, David House <[EMAIL PROTECTED]> wrote:
On 27/10/06, David House <[EMAIL PROTECTED]> 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
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to