Differences With Haskell 98
Helium
Here is a list of differences between Helium (with overloading) and Haskell 98.
Not supported
- labeled fields in data types (a.k.a. records)
-
newtype declarations
- qualified imports and renaming an imported module with
as
- import and export lists, such as
import Prelude(map)
-
class, instance and default declarations
- Strictness annotations
-
n+k patterns
-
(,) and (,,) etc. to construct a tuple (type), i.e. you cannot write (,) 3 4
-
[] as type constructor, i.e. you cannot write x :: [] Int
- literate programming
Supported but restricted
Not in Haskell 98, but available in Helium
- A show function is generated for each data type and type synonym. For instance, the function
showMaybe is automatically created for the data type Maybe. If the data type has parameters, then the show function gets the necessary additional arguments, e.g. showMaybe showInt (Just 3).
--
JurriaanHage - 15 Apr 2008