I have some questions about the Haskell Report. I will appreciate if
someone could exaplain them. Thanks.
1.- In the version 1.2 there is a restriction that a C-T instance declaration
may only appear either in the module where C or T are declared, but in
the version 1.3 this restriction does not appear. What is the reason for
the change? Why is the restriction in 1.2 at all?
2.- In the declaration of the Eq class, (/=) has a default declaration,
but (==) has not. Why?
If (==) has also a default declaration (ie: not (x/=y)) you could choose
whether to define (==) or (/=) or both when declaring an instance.
The same applies to Ord and (<=).
3.- The 1.2 class Text was separated in the 1.3 Show and Read, and then, 1.2
programs that uses Text are not 1.3 compatibles, and make them work
requires a lot of changes. But if one adds the following declarations:
class (Show a, Read a) => Text a
and the appropriate instance declarations for predefined types, the only
changes needed are in the user-defined instance declarations for Text,
thus reducing the amount of work to be done.
Can these things be added to the PreludeText module?
Are they worth considering?
Fidel.