This does what you want, I think:

{-# LANGUAGE ExistentialQuantification #-}
module Exist where

data Showable = forall a. (Show a) => Showable a
instance Show Showable where
   showsPrec p (Showable a) = showsPrec p a
   show (Showable a) = show a
   -- You have to use the default implementation of showList
   -- because a list could be heterogeneous

data T a = forall b. (Show b) => T b a

extShow :: T a -> Showable
extShow (T b _) = Showable b

  -- ryan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to