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.



Reply via email to