No import of Prelude

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Question

Is it possible to not load the Prelude when compiling a Haskell module?

Answer

You can either do

import Prelude()

or add

{-# LANGUAGE NoImplicitPrelude #-}

to the top of the module, or equivalently compile with -fno-implicit-prelude option.

import Prelude() is less aggressive than NoImplicitPrelude. E.g. with the first method some functions are imported which are silently inserted for several syntactic constructs. A bare untyped integral number is rewritten as fromIntegral num (so its type will be Num a => a), and list generation syntax is rewritten as follows: [n..] enumFrom, [n..m] enumFromTo, [n,o..] enumFromThen, [n,o..m] enumFromThenTo.

There are some such for which even -fno-implicit-prelude isn't enough; I think these are documented in the "bugs" section of the GHC manual.


See also