{-# 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. -- 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. -}