Bulat Ziganshin wrote: > JW> interface Figure > JW> class Circle implements Figure > JW> class Box implements Figure > > this don't give ability to create polymorphic collections
You mean in Haskell? I would probably use existential types then. Something like data EFigure = forall f . Figure f => EFigure f and - as Georg Martius once pointed out - with an additional "instance Figure EFigure ..." to avoid at least some of the (un)boxing code. As a whole, this *does* look messy - Java programmers can nicely write the name of the interface when they mean some unspecified instance: Figure f = new Circle () ... Of course that's only so because their interfaces (type classes) are always unary predicates. I definitely would not give up multi parameter type classes from Haskell. But still the Java notation looks neat and concise. -- -- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 -- ---- http://www.imn.htwk-leipzig.de/~waldmann/ ------- _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
