Go to the first, previous, next, last section, table of contents.

Converting from pre-1.3 monadic I/O

GHC 0.29 supported an early DRAFT of the Haskell 1.3 monadic I/O facilities. Inevitably, what Really Made It into 1.3 is not quite what was in the draft. What was called `handle' in the draft is now called `catch'. The type of the function `fail' changed between draft and real-thing. Old: `fail x'; new: `fail (userError x)'. Also, what used to be `failWith x' is now just `fail x'. All the system modules named `LibSomething' dropped the `Lib'. So: `LibSystem' is now just `System'. As of 2.09, GHC doesn't have `PrimIO', and all `_ccall_'s now return type `IO a', where `a' is the return type of the `_ccall_' itself. The `IOError' type is now abstract; you cannot see it's constructors. 1.3 provides functions to query errors.
Go to the first, previous, next, last section, table of contents.