Original-Via: uk.ac.nsf; Fri, 24 Jan 92 20:04:55 GMT

Haskell 1.2.beta defines (pp. 58 and 89)

     class (Num a, Ord a) => Real a
and 
     class (Real a) => Integral a


Proposal: change this to
========
     class (Num a, Ord a, Enum a) => Real a
and
     class (Real a, Ix a) => Integral a


Reasons for:  1:  'cause that's the way it is. 
              2:  the more connected the graph of subclass inclusions 
                  becomes, the easier it is to understand. 

Reasons against: ???

Consequences: Every type that is declared to be an instance 
              of Real (or Integral) must also be declared to
              be an instance of Enum (or Ix). 
                This requires no change to the standard prelude,
              and only a few lines extra code for user-defined
              numeric types.  

Can anyone come up with reasons against? 

-- Mikael R. 

Reply via email to