No import of Prelude
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
- Haskell-Cafe: Not to load Prelude