
With ConstraintKinds, ExistentialQuantification, StandaloneDeriving and FlexibleInstances, this works:
data Some f = forall a. f a => Some a deriving instance Show (Some Show) show ([Some [0..10], Some (), Some Nothing, Some "asdf"] :: [Some Show]) "[Some [0,1,2,3,4,5,6,7,8,9,10],Some (),Some Nothing,Some \"asdf\"]"
On Tue, May 28, 2013 at 6:04 PM, Magnus Therning
On Tue, May 28, 2013 at 9:36 AM, harry
wrote: Every OO language which supports generics allows a declaration such as List<Show> alist, where Show is an interface. Any type implementing Show can be put in alist, and any Show operation can be performed on the alist's members. No casts, wrappers, or other special types and plumbing are needed.
Why isn't it possible to do this directly in Haskell?
Just to make sure... I guess you've already read http://www.haskell.org/haskellwiki/Heterogenous_collections right?
/M
-- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners