The Haskell Home Page,
The Definition of the Language
Changes from Haskell 1.3 to Haskell 1.4
- List comprehensions have been generalized to arbitrary
monads. (See Section
3.1.1 ).
- Import and export of class methods and constructors is no
longer restricted to `all or nothing' as previously. Any
subset of class methods or data constructors may be
selected for import or export. Methods and constructors
are now entities in their own right. (See Section
5.1.1).
- The defaulting rule now applies to type variables
affected by the monomorphism restriction. (All
implementations already do this - this officially
sanctions the existing practice). (See Section 4.3.4).
- Qualified names may now be used as field names in
patterns and updates.
- Ord is no longer a superclass of Enum.
Some of the default methods for Enum have
changed.
- Context restrictions on newtype declarations
have been relaxed. (See section 4.2.3).
- The Prelude is now more explicit about some instances for
Read and Show.
- The fixity of >>= has changed.
- The report is more explicit about context reduction
problems. (See Section
4.5.3).
- Ratio and Rational have been added to the export list of
the prelude.
- We're now using Unicode. See Lexical
Structure.
- There's an extra warning about character IO (see Input/Output)
Haskell 1.4 is generally compatible with 1.3 - most of these
changes are upward compatible. You may have problems with type
signatures containing Enum if Ord instances are also used - you
must add an explicit Ord context now that Enum does not imply
Ord. The change in the fixity of >>=
may also lead to incompatiblity. Instances which rely on the
defaults in the class Enum may break.
Last update: September 16th, 1998