# No import of Prelude

(Difference between revisions)
 Revision as of 02:49, 4 December 2010 (edit)m (→Question)← Previous diff Current revision (15:26, 15 November 2011) (edit) (undo) (→Answer: Added newer -X version of command line switch) Line 15: Line 15: {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE NoImplicitPrelude #-} - to the top of the module, or equivalently compile with -fno-implicit-prelude option. + to the top of the module, or equivalently compile with -XNoImplicitPrelude (or older -fno-implicit-prelude) option. import Prelude() is less aggressive than NoImplicitPrelude. import Prelude() is less aggressive than NoImplicitPrelude. Line 29: Line 29: There are some such for which even -fno-implicit-prelude isn't enough; 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. I think these are documented in the "bugs" section of the GHC manual. - == See also == == See also ==

## 1 Question

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

You can either do

import Prelude()

{-# LANGUAGE NoImplicitPrelude #-}

to the top of the module, or equivalently compile with -XNoImplicitPrelude (or older -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..]
$\rightarrow$
enumFrom
,
[n..m]
$\rightarrow$
enumFromTo
,
[n,o..]
$\rightarrow$
enumFromThen
,
[n,o..m]
$\rightarrow$
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.