diff --git a/compiler/utils/GhcPrelude.hs b/compiler/utils/GhcPrelude.hs index 3437e65..dd78f15 100644 --- a/compiler/utils/GhcPrelude.hs +++ b/compiler/utils/GhcPrelude.hs @@ -1,29 +1,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. -}