On Mon, 11 Aug 2003, Tomasz Zielonka wrote:

> The Tree datatype in new Data.Tree module has a Show instance ...

I agree that Read/Show should normally come as a pair.
It is debatable whether a library should contain a Show instance
that makes it rather impossible to write the corresponding Read instance.

Even more so since no library user can later change this:
by the Haskell definition,
if you import a module that contains a data type definition,
then you also inherit all its instances from that module.
(Section 5.4 of the report, http://haskell.org/onlinereport/modules.html)
the workaround would be to move the `instance Show Tree'
into a separate library module.


On the other hand, it is my opinion that for a clean program design,
you should normally define your own `data' (or `newtype') types, 
rather than use exisiting ones by `type' synonyms.

this may lead to somewhat larger program texts,
but you'll find that they are more readable, and extendable.
(Compare adding another component to a tuple, and to a record).

this also gives you the opportunity 
to define class instances in any way you want.


best regards,
-- 
-- Johannes Waldmann ---- http://www.informatik.uni-leipzig.de/~joe/ --
-- [EMAIL PROTECTED] -- phone/fax (+49) 341 9732 204/209 --

_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to