Original-Via: uk.ac.nsf; Thu, 30 Jan 92 00:30:12 GMT

Since no one has argued against making Real a subclass of Enum
and Integer a subclass of Ix (see my previous letter), I assume 
that everyone agrees with me.  ;-)  

-- Mikael R. 

P.S:  Here are some errata in 1.2.beta, with suggested fixes. 
      Negative line numbers mean counting bottom-up. 

Page Line  Says                     Should be 

iii  5,6  <nothing>                 "References............149"
                                    "Index.................151"
                                    (LaTeX refuses to include unnumbered 
                                     sections in the table of contents, but
                                     you can put them in the .toc file
                                     manually.)

ix    -0  <nothing>                 " \item The precedence of prefix 
                                            minus has been made the
                                            same as infix minus."

11     7  "(see Figure 5)"          "(see Figure 5, page 53)" 

12    -6  "Because..."              "Prefix negation has the same precedence
                                     as the infix - operator defined in the
                                     standard prelude (see Figure 5, page 53).
                                     Because..." 

14    -1 "...if e3 is omitted,      "...if e3 is omitted, the sequence is 
          the sequence includes      infinite for types in the Real class 
          all (sic!) elements of     ([maxInt..] == [maxInt,\bot,\bot,...])
          the enumeration, and       but ends when the elements run out 
          is thus infinite for       for finite enumerations like Char." 
          infinite enumerations."     

53  Fig. 5                           add the entry: " 0 | infixr | $ " 

56    -4  "and should be large       <Delete the phrase.> 
           enough to serve as         It is redundant, since Ints are 
           array indices."            required to cover [-2^29+1, 2^29-1],
                                      and it is quite weak, since booleans
                                      can be used as indices. 

56  Fig. 7  Caption: "Numeric       "Class inclusions between some 
            class inclusions"        of the predefined classes"  
                                    (Eq, Ord, and Text are not numeric)

56  Fig. 7  <strange choice          Ix and Enum should also be included. 
             of classes>             (Real < Enum < Ord, and 
                                      Integral < Ix < Ord, if the 
                                      proposition to make Real a 
                                      subclass of Enum and Integral 
                                      a subclass of Ix passes the 
                                      class Czars.)

58     7   "(Num a, Ord a) => Real a"  "(Num a, Enum a) => Real a" 
89   -13    --------- '' -----------    ------------- '' --------     
58     9   "(Real a) => Integral a"    "(Real a, Ix a) => Integral a"
89   -11    --------- '' ---------      ------------- '' -----------
                                    (If this change is adopted, see above.)


61    11    " -13 `rem` 4"          " (-13) `rem` 4"  
61    12    " -13 `mod` 4"          " (-13) `mod` 4"
                                    (`rem` and `mod` bind tighter 
                                     than prefix negation)

64    -3    "assocs: "              "assocs:: " 

126  -13    "abiguities"            "ambiguities"

126   -4    "preface (page )."      "preface (page ix)."

151ff      index entries for             add references to page 53 (the 
           !  !!  $   %  && *  **       precedence table). 
           +  ++  -   .  /  // /=
           :  :%  :=  <  <= ==  >  
           >=  ^  ^^ div elem mod 
           notElem rem 


*) Sections 1.5 and B.4 on layout are almost but not quite identical.
   Sec. 1.5 is not explicit on whether {- -} comments affect the indentation 
   of a line; sec. B.4 does not contain the module Astack example. The two 
   sections should at least refer to each other. 

*) The curly braces are overloaded in the BNF notation: 

     {pattern}     means zero or more repetitions,

     pat           means difference; pat except pat'. 
        {pat'}

   This is quite confusing, especially in the ANYseq production:

     ANYseq -> {ANY}
                    {ANY} { {- | -} } {ANY}

   where the outermost braces of the subscript expressions are omitted.
   Suggestion: use angle brackets (\langle and \rangle) for difference.  

-- Mikael R. 

Reply via email to