blob: dd78f15573ddef083b5c4345ca60f123e715f59f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
{-# LANGUAGE CPP #-}
-- | Custom GHC "Prelude"
--
-- This module serves as a replacement for the "Prelude" module
-- and abstracts over differences between the bootstrapping
-- GHC version, and may also provide a common default vocabulary.
-- Every module in GHC
-- * Is compiled with -XNoImplicitPrelude
-- * Explicitly imports GhcPrelude
module GhcPrelude (module X) where
-- We export the 'Semigroup' class but w/o the (<>) operator to avoid
-- clashing with the (Outputable.<>) operator which is heavily used
-- through GHC's code-base.
import Prelude as X hiding ((<>))
import Data.Foldable as X (foldl')
{-
Note [Why do we import Prelude here?]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The files ghc-boot-th.cabal, ghc-boot.cabal, ghci.cabal and
ghc-heap.cabal contain the directive default-extensions:
NoImplicitPrelude. There are two motivations for this:
- Consistency with the compiler directory, which enables
NoImplicitPrelude;
- Allows loading the above dependent packages with ghc-in-ghci,
giving a smoother development experience when adding new
extensions.
-}
|