summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/base/Control/Applicative.hs2
-rw-r--r--libraries/base/Control/Category.hs2
-rw-r--r--libraries/base/Control/Concurrent.hs7
-rw-r--r--libraries/base/Control/Concurrent/Chan.hs2
-rw-r--r--libraries/base/Control/Concurrent/MVar.hs3
-rw-r--r--libraries/base/Control/Concurrent/QSem.hs2
-rw-r--r--libraries/base/Control/Concurrent/QSemN.hs2
-rw-r--r--libraries/base/Control/Concurrent/SampleVar.hs2
-rw-r--r--libraries/base/Control/Exception.hs2
-rw-r--r--libraries/base/Control/Exception/Base.hs2
-rw-r--r--libraries/base/Control/Monad.hs3
-rw-r--r--libraries/base/Control/Monad/Fix.hs2
-rw-r--r--libraries/base/Control/Monad/ST.hs2
-rw-r--r--libraries/base/Control/Monad/ST/Lazy.hs2
-rw-r--r--libraries/base/Control/OldException.hs6
-rw-r--r--libraries/base/Data/Bits.hs4
-rw-r--r--libraries/base/Data/Bool.hs3
-rw-r--r--libraries/base/Data/Char.hs3
-rw-r--r--libraries/base/Data/Complex.hs2
-rw-r--r--libraries/base/Data/Data.hs2
-rw-r--r--libraries/base/Data/Dynamic.hs3
-rw-r--r--libraries/base/Data/Either.hs3
-rw-r--r--libraries/base/Data/Eq.hs3
-rw-r--r--libraries/base/Data/Fixed.hs4
-rw-r--r--libraries/base/Data/Foldable.hs2
-rw-r--r--libraries/base/Data/Functor.hs2
-rw-r--r--libraries/base/Data/HashTable.hs3
-rw-r--r--libraries/base/Data/IORef.hs3
-rw-r--r--libraries/base/Data/Int.hs3
-rw-r--r--libraries/base/Data/Ix.hs2
-rw-r--r--libraries/base/Data/List.hs3
-rw-r--r--libraries/base/Data/Maybe.hs3
-rw-r--r--libraries/base/Data/Monoid.hs3
-rw-r--r--libraries/base/Data/Ord.hs3
-rw-r--r--libraries/base/Data/Ratio.hs2
-rw-r--r--libraries/base/Data/STRef.hs2
-rw-r--r--libraries/base/Data/String.hs3
-rw-r--r--libraries/base/Data/Traversable.hs2
-rw-r--r--libraries/base/Data/Tuple.hs2
-rw-r--r--libraries/base/Data/Typeable.hs9
-rw-r--r--libraries/base/Data/Typeable.hs-boot3
-rw-r--r--libraries/base/Data/Unique.hs6
-rw-r--r--libraries/base/Data/Version.hs2
-rw-r--r--libraries/base/Data/Word.hs3
-rw-r--r--libraries/base/Debug/Trace.hs2
-rw-r--r--libraries/base/Foreign.hs3
-rw-r--r--libraries/base/Foreign/C.hs3
-rw-r--r--libraries/base/Foreign/C/Error.hs4
-rw-r--r--libraries/base/Foreign/C/String.hs3
-rw-r--r--libraries/base/Foreign/C/Types.hs7
-rw-r--r--libraries/base/Foreign/Concurrent.hs3
-rw-r--r--libraries/base/Foreign/ForeignPtr.hs3
-rw-r--r--libraries/base/Foreign/Marshal.hs3
-rw-r--r--libraries/base/Foreign/Marshal/Alloc.hs8
-rw-r--r--libraries/base/Foreign/Marshal/Array.hs3
-rw-r--r--libraries/base/Foreign/Marshal/Error.hs3
-rw-r--r--libraries/base/Foreign/Marshal/Pool.hs3
-rw-r--r--libraries/base/Foreign/Marshal/Utils.hs3
-rw-r--r--libraries/base/Foreign/Ptr.hs8
-rw-r--r--libraries/base/Foreign/StablePtr.hs3
-rw-r--r--libraries/base/Foreign/Storable.hs3
-rw-r--r--libraries/base/GHC/Arr.lhs3
-rw-r--r--libraries/base/GHC/Base.lhs12
-rw-r--r--libraries/base/GHC/Classes.hs2
-rw-r--r--libraries/base/GHC/Conc.lhs3
-rw-r--r--libraries/base/GHC/Conc/IO.hs8
-rw-r--r--libraries/base/GHC/Conc/Signal.hs2
-rw-r--r--libraries/base/GHC/Conc/Sync.lhs12
-rw-r--r--libraries/base/GHC/Conc/Windows.hs3
-rw-r--r--libraries/base/GHC/ConsoleHandler.hs3
-rw-r--r--libraries/base/GHC/Constants.hs1
-rw-r--r--libraries/base/GHC/Desugar.hs6
-rw-r--r--libraries/base/GHC/Enum.lhs3
-rw-r--r--libraries/base/GHC/Environment.hs1
-rw-r--r--libraries/base/GHC/Err.lhs3
-rw-r--r--libraries/base/GHC/Err.lhs-boot3
-rw-r--r--libraries/base/GHC/Exception.lhs6
-rw-r--r--libraries/base/GHC/Exts.hs2
-rw-r--r--libraries/base/GHC/Float.lhs8
-rw-r--r--libraries/base/GHC/ForeignPtr.hs9
-rw-r--r--libraries/base/GHC/IO.hs7
-rw-r--r--libraries/base/GHC/IO.hs-boot2
-rw-r--r--libraries/base/GHC/IO/Buffer.hs4
-rw-r--r--libraries/base/GHC/IO/BufferedIO.hs4
-rw-r--r--libraries/base/GHC/IO/Device.hs3
-rw-r--r--libraries/base/GHC/IO/Encoding.hs4
-rw-r--r--libraries/base/GHC/IO/Encoding/CodePage.hs2
-rw-r--r--libraries/base/GHC/IO/Encoding/Iconv.hs7
-rw-r--r--libraries/base/GHC/IO/Encoding/Latin1.hs8
-rw-r--r--libraries/base/GHC/IO/Encoding/Types.hs4
-rw-r--r--libraries/base/GHC/IO/Encoding/UTF16.hs10
-rw-r--r--libraries/base/GHC/IO/Encoding/UTF32.hs9
-rw-r--r--libraries/base/GHC/IO/Encoding/UTF8.hs9
-rw-r--r--libraries/base/GHC/IO/Exception.hs3
-rw-r--r--libraries/base/GHC/IO/Exception.hs-boot2
-rw-r--r--libraries/base/GHC/IO/FD.hs9
-rw-r--r--libraries/base/GHC/IO/Handle.hs6
-rw-r--r--libraries/base/GHC/IO/Handle.hs-boot2
-rw-r--r--libraries/base/GHC/IO/Handle/FD.hs3
-rw-r--r--libraries/base/GHC/IO/Handle/FD.hs-boot2
-rw-r--r--libraries/base/GHC/IO/Handle/Internals.hs8
-rw-r--r--libraries/base/GHC/IO/Handle/Text.hs10
-rw-r--r--libraries/base/GHC/IO/Handle/Types.hs8
-rw-r--r--libraries/base/GHC/IO/IOMode.hs2
-rw-r--r--libraries/base/GHC/IOArray.hs3
-rw-r--r--libraries/base/GHC/IOBase.hs2
-rw-r--r--libraries/base/GHC/IORef.hs4
-rw-r--r--libraries/base/GHC/Int.hs3
-rw-r--r--libraries/base/GHC/List.lhs3
-rw-r--r--libraries/base/GHC/MVar.hs4
-rw-r--r--libraries/base/GHC/Num.lhs2
-rw-r--r--libraries/base/GHC/PArr.hs2
-rw-r--r--libraries/base/GHC/Pack.lhs3
-rw-r--r--libraries/base/GHC/Ptr.lhs3
-rw-r--r--libraries/base/GHC/Read.lhs3
-rw-r--r--libraries/base/GHC/Real.lhs2
-rw-r--r--libraries/base/GHC/ST.lhs2
-rw-r--r--libraries/base/GHC/STRef.lhs3
-rw-r--r--libraries/base/GHC/Show.lhs4
-rw-r--r--libraries/base/GHC/Show.lhs-boot2
-rw-r--r--libraries/base/GHC/Stable.lhs7
-rw-r--r--libraries/base/GHC/Storable.lhs3
-rw-r--r--libraries/base/GHC/TopHandler.lhs9
-rw-r--r--libraries/base/GHC/Unicode.hs3
-rw-r--r--libraries/base/GHC/Unicode.hs-boot2
-rw-r--r--libraries/base/GHC/Weak.lhs9
-rw-r--r--libraries/base/GHC/Word.hs4
-rw-r--r--libraries/base/NHC/PosixTypes.hsc2
-rw-r--r--libraries/base/Numeric.hs3
-rw-r--r--libraries/base/Prelude.hs3
-rw-r--r--libraries/base/System/CPUTime.hsc2
-rw-r--r--libraries/base/System/Environment.hs2
-rw-r--r--libraries/base/System/Event/Clock.hsc3
-rw-r--r--libraries/base/System/Event/Control.hs8
-rw-r--r--libraries/base/System/Event/EPoll.hsc8
-rw-r--r--libraries/base/System/Event/IntMap.hs1
-rw-r--r--libraries/base/System/Event/KQueue.hsc9
-rw-r--r--libraries/base/System/Event/Manager.hs11
-rw-r--r--libraries/base/System/Event/Poll.hsc8
-rw-r--r--libraries/base/System/Exit.hs2
-rw-r--r--libraries/base/System/IO.hs3
-rw-r--r--libraries/base/System/IO/Error.hs2
-rw-r--r--libraries/base/System/IO/Unsafe.hs3
-rw-r--r--libraries/base/System/Info.hs2
-rw-r--r--libraries/base/System/Mem.hs6
-rw-r--r--libraries/base/System/Mem/StableName.hs8
-rw-r--r--libraries/base/System/Mem/Weak.hs6
-rw-r--r--libraries/base/System/Posix/Internals.hs2
-rw-r--r--libraries/base/System/Posix/Types.hs7
-rw-r--r--libraries/base/System/Timeout.hs2
-rw-r--r--libraries/base/Text/ParserCombinators/ReadP.hs9
-rw-r--r--libraries/base/Text/ParserCombinators/ReadPrec.hs3
-rw-r--r--libraries/base/Text/Printf.hs2
-rw-r--r--libraries/base/Text/Read.hs3
-rw-r--r--libraries/base/Text/Read/Lex.hs3
-rw-r--r--libraries/base/Text/Show.hs3
-rw-r--r--libraries/base/Text/Show/Functions.hs2
-rw-r--r--libraries/base/Unsafe/Coerce.hs3
-rw-r--r--libraries/base/base.cabal8
-rw-r--r--libraries/base/codepages/MakeTable.hs2
160 files changed, 484 insertions, 151 deletions
diff --git a/libraries/base/Control/Applicative.hs b/libraries/base/Control/Applicative.hs
index a7f7fe8307..c38e5809d9 100644
--- a/libraries/base/Control/Applicative.hs
+++ b/libraries/base/Control/Applicative.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Applicative
diff --git a/libraries/base/Control/Category.hs b/libraries/base/Control/Category.hs
index ff63af5fa2..b63fc67c92 100644
--- a/libraries/base/Control/Category.hs
+++ b/libraries/base/Control/Category.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Category
diff --git a/libraries/base/Control/Concurrent.hs b/libraries/base/Control/Concurrent.hs
index d1b6875e66..514e2e9adf 100644
--- a/libraries/base/Control/Concurrent.hs
+++ b/libraries/base/Control/Concurrent.hs
@@ -1,4 +1,11 @@
+{-# LANGUAGE CPP
+ , ForeignFunctionInterface
+ , MagicHash
+ , UnboxedTuples
+ , ScopedTypeVariables
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent
diff --git a/libraries/base/Control/Concurrent/Chan.hs b/libraries/base/Control/Concurrent/Chan.hs
index e06e0cb7a2..2255c4e49c 100644
--- a/libraries/base/Control/Concurrent/Chan.hs
+++ b/libraries/base/Control/Concurrent/Chan.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent.Chan
diff --git a/libraries/base/Control/Concurrent/MVar.hs b/libraries/base/Control/Concurrent/MVar.hs
index b2b688aa03..9a95b8ff08 100644
--- a/libraries/base/Control/Concurrent/MVar.hs
+++ b/libraries/base/Control/Concurrent/MVar.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent.MVar
diff --git a/libraries/base/Control/Concurrent/QSem.hs b/libraries/base/Control/Concurrent/QSem.hs
index 8e8a3016db..22f6c0c8f6 100644
--- a/libraries/base/Control/Concurrent/QSem.hs
+++ b/libraries/base/Control/Concurrent/QSem.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent.QSem
diff --git a/libraries/base/Control/Concurrent/QSemN.hs b/libraries/base/Control/Concurrent/QSemN.hs
index 7e43908094..cfcff7f5d8 100644
--- a/libraries/base/Control/Concurrent/QSemN.hs
+++ b/libraries/base/Control/Concurrent/QSemN.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent.QSemN
diff --git a/libraries/base/Control/Concurrent/SampleVar.hs b/libraries/base/Control/Concurrent/SampleVar.hs
index 7d1a00d7fe..ca68a38f76 100644
--- a/libraries/base/Control/Concurrent/SampleVar.hs
+++ b/libraries/base/Control/Concurrent/SampleVar.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Concurrent.SampleVar
diff --git a/libraries/base/Control/Exception.hs b/libraries/base/Control/Exception.hs
index 578c2ee8ba..03f6886d1c 100644
--- a/libraries/base/Control/Exception.hs
+++ b/libraries/base/Control/Exception.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ExistentialQuantification #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/Control/Exception/Base.hs b/libraries/base/Control/Exception/Base.hs
index fb4f6de878..cb5321b76b 100644
--- a/libraries/base/Control/Exception/Base.hs
+++ b/libraries/base/Control/Exception/Base.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
#include "Typeable.h"
diff --git a/libraries/base/Control/Monad.hs b/libraries/base/Control/Monad.hs
index bf94ad4a05..2bbfc5714c 100644
--- a/libraries/base/Control/Monad.hs
+++ b/libraries/base/Control/Monad.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Monad
diff --git a/libraries/base/Control/Monad/Fix.hs b/libraries/base/Control/Monad/Fix.hs
index e8ba03dd9a..a1309faccd 100644
--- a/libraries/base/Control/Monad/Fix.hs
+++ b/libraries/base/Control/Monad/Fix.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Monad.Fix
diff --git a/libraries/base/Control/Monad/ST.hs b/libraries/base/Control/Monad/ST.hs
index 8ebb750e3a..397b072533 100644
--- a/libraries/base/Control/Monad/ST.hs
+++ b/libraries/base/Control/Monad/ST.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Monad.ST
diff --git a/libraries/base/Control/Monad/ST/Lazy.hs b/libraries/base/Control/Monad/ST/Lazy.hs
index 657752ec9f..8aac6651a7 100644
--- a/libraries/base/Control/Monad/ST/Lazy.hs
+++ b/libraries/base/Control/Monad/ST/Lazy.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, MagicHash, UnboxedTuples, Rank2Types #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Control.Monad.ST.Lazy
diff --git a/libraries/base/Control/OldException.hs b/libraries/base/Control/OldException.hs
index 4fa787f752..02848992b1 100644
--- a/libraries/base/Control/OldException.hs
+++ b/libraries/base/Control/OldException.hs
@@ -1,4 +1,8 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , ForeignFunctionInterface
+ , ExistentialQuantification
+ #-}
#include "Typeable.h"
diff --git a/libraries/base/Data/Bits.hs b/libraries/base/Data/Bits.hs
index c9230c59bf..cbf7b37015 100644
--- a/libraries/base/Data/Bits.hs
+++ b/libraries/base/Data/Bits.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Bits
diff --git a/libraries/base/Data/Bool.hs b/libraries/base/Data/Bool.hs
index 10ca90a334..ba2d8aea27 100644
--- a/libraries/base/Data/Bool.hs
+++ b/libraries/base/Data/Bool.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Bool
diff --git a/libraries/base/Data/Char.hs b/libraries/base/Data/Char.hs
index f9cbbdfa0c..40052a7607 100644
--- a/libraries/base/Data/Char.hs
+++ b/libraries/base/Data/Char.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Char
diff --git a/libraries/base/Data/Complex.hs b/libraries/base/Data/Complex.hs
index 69655479c0..9765edafa0 100644
--- a/libraries/base/Data/Complex.hs
+++ b/libraries/base/Data/Complex.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, DeriveDataTypeable #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Complex
diff --git a/libraries/base/Data/Data.hs b/libraries/base/Data/Data.hs
index 08bc68a63d..d9cab7a5e9 100644
--- a/libraries/base/Data/Data.hs
+++ b/libraries/base/Data/Data.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, Rank2Types, ScopedTypeVariables #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Data
diff --git a/libraries/base/Data/Dynamic.hs b/libraries/base/Data/Dynamic.hs
index 9b007d4f15..b83bbfa89c 100644
--- a/libraries/base/Data/Dynamic.hs
+++ b/libraries/base/Data/Dynamic.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Dynamic
diff --git a/libraries/base/Data/Either.hs b/libraries/base/Data/Either.hs
index fd6651f4cc..1c12897eaa 100644
--- a/libraries/base/Data/Either.hs
+++ b/libraries/base/Data/Either.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Either
diff --git a/libraries/base/Data/Eq.hs b/libraries/base/Data/Eq.hs
index 7e424a22df..e7b99f118f 100644
--- a/libraries/base/Data/Eq.hs
+++ b/libraries/base/Data/Eq.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Eq
diff --git a/libraries/base/Data/Fixed.hs b/libraries/base/Data/Fixed.hs
index 98d212defd..cd4409295b 100644
--- a/libraries/base/Data/Fixed.hs
+++ b/libraries/base/Data/Fixed.hs
@@ -1,5 +1,9 @@
+{-# LANGUAGE CPP #-}
{-# OPTIONS -Wall -fno-warn-unused-binds #-}
+#ifndef __NHC__
+{-# LANGUAGE DeriveDataTypeable #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Fixed
diff --git a/libraries/base/Data/Foldable.hs b/libraries/base/Data/Foldable.hs
index d07bebe074..354bd8b270 100644
--- a/libraries/base/Data/Foldable.hs
+++ b/libraries/base/Data/Foldable.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Foldable
diff --git a/libraries/base/Data/Functor.hs b/libraries/base/Data/Functor.hs
index e5b8166319..84d0aa7256 100644
--- a/libraries/base/Data/Functor.hs
+++ b/libraries/base/Data/Functor.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Functor
diff --git a/libraries/base/Data/HashTable.hs b/libraries/base/Data/HashTable.hs
index c407abf436..e96160a59c 100644
--- a/libraries/base/Data/HashTable.hs
+++ b/libraries/base/Data/HashTable.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields -fno-warn-name-shadowing #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# OPTIONS_GHC -funbox-strict-fields -fno-warn-name-shadowing #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/Data/IORef.hs b/libraries/base/Data/IORef.hs
index f8857510e4..a6f29e7fc6 100644
--- a/libraries/base/Data/IORef.hs
+++ b/libraries/base/Data/IORef.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, UnboxedTuples #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.IORef
diff --git a/libraries/base/Data/Int.hs b/libraries/base/Data/Int.hs
index 67b4ba8d12..c9c9036d53 100644
--- a/libraries/base/Data/Int.hs
+++ b/libraries/base/Data/Int.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Int
diff --git a/libraries/base/Data/Ix.hs b/libraries/base/Data/Ix.hs
index fda6d58c4a..a01e516265 100644
--- a/libraries/base/Data/Ix.hs
+++ b/libraries/base/Data/Ix.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Ix
diff --git a/libraries/base/Data/List.hs b/libraries/base/Data/List.hs
index 0e4e621363..061ad42a01 100644
--- a/libraries/base/Data/List.hs
+++ b/libraries/base/Data/List.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.List
diff --git a/libraries/base/Data/Maybe.hs b/libraries/base/Data/Maybe.hs
index 981d028d42..b96efa7829 100644
--- a/libraries/base/Data/Maybe.hs
+++ b/libraries/base/Data/Maybe.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Maybe
diff --git a/libraries/base/Data/Monoid.hs b/libraries/base/Data/Monoid.hs
index b3233ba13e..aaefd42169 100644
--- a/libraries/base/Data/Monoid.hs
+++ b/libraries/base/Data/Monoid.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Monoid
diff --git a/libraries/base/Data/Ord.hs b/libraries/base/Data/Ord.hs
index 9af4246e85..fd291ae960 100644
--- a/libraries/base/Data/Ord.hs
+++ b/libraries/base/Data/Ord.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Ord
diff --git a/libraries/base/Data/Ratio.hs b/libraries/base/Data/Ratio.hs
index d64297f0ec..f0440993a3 100644
--- a/libraries/base/Data/Ratio.hs
+++ b/libraries/base/Data/Ratio.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Ratio
diff --git a/libraries/base/Data/STRef.hs b/libraries/base/Data/STRef.hs
index 288cbe778f..5002ee7fde 100644
--- a/libraries/base/Data/STRef.hs
+++ b/libraries/base/Data/STRef.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.STRef
diff --git a/libraries/base/Data/String.hs b/libraries/base/Data/String.hs
index c2dc17ed0f..dae81a2d5e 100644
--- a/libraries/base/Data/String.hs
+++ b/libraries/base/Data/String.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, FlexibleInstances #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.String
diff --git a/libraries/base/Data/Traversable.hs b/libraries/base/Data/Traversable.hs
index af04e51f3a..2bdc1bc26d 100644
--- a/libraries/base/Data/Traversable.hs
+++ b/libraries/base/Data/Traversable.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Traversable
diff --git a/libraries/base/Data/Tuple.hs b/libraries/base/Data/Tuple.hs
index 6921a21165..a5ea87570f 100644
--- a/libraries/base/Data/Tuple.hs
+++ b/libraries/base/Data/Tuple.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- XXX -fno-warn-unused-imports needed for the GHC.Tuple import below. Sigh.
-----------------------------------------------------------------------------
diff --git a/libraries/base/Data/Typeable.hs b/libraries/base/Data/Typeable.hs
index e606294a08..804e853b8d 100644
--- a/libraries/base/Data/Typeable.hs
+++ b/libraries/base/Data/Typeable.hs
@@ -1,4 +1,11 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -XOverlappingInstances -funbox-strict-fields #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , OverlappingInstances
+ , ScopedTypeVariables
+ , ForeignFunctionInterface
+ , FlexibleInstances
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
-- The -XOverlappingInstances flag allows the user to over-ride
-- the instances for Typeable given here. In particular, we provide an instance
diff --git a/libraries/base/Data/Typeable.hs-boot b/libraries/base/Data/Typeable.hs-boot
index 9da3620c9c..da6142e83f 100644
--- a/libraries/base/Data/Typeable.hs-boot
+++ b/libraries/base/Data/Typeable.hs-boot
@@ -1,5 +1,4 @@
-
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module Data.Typeable where
diff --git a/libraries/base/Data/Unique.hs b/libraries/base/Data/Unique.hs
index ab3d64718d..c4c8827433 100644
--- a/libraries/base/Data/Unique.hs
+++ b/libraries/base/Data/Unique.hs
@@ -1,3 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+#ifdef __GLASGOW_HASKELL__
+{-# LANGUAGE MagicHash, DeriveDataTypeable #-}
+#endif
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Unique
diff --git a/libraries/base/Data/Version.hs b/libraries/base/Data/Version.hs
index ef9c07ddec..7d7d329635 100644
--- a/libraries/base/Data/Version.hs
+++ b/libraries/base/Data/Version.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, DeriveDataTypeable #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Version
diff --git a/libraries/base/Data/Word.hs b/libraries/base/Data/Word.hs
index c4bf0a6870..18300d2512 100644
--- a/libraries/base/Data/Word.hs
+++ b/libraries/base/Data/Word.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Data.Word
diff --git a/libraries/base/Debug/Trace.hs b/libraries/base/Debug/Trace.hs
index 742044e4d4..ebacb6c3d7 100644
--- a/libraries/base/Debug/Trace.hs
+++ b/libraries/base/Debug/Trace.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, ForeignFunctionInterface #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Debug.Trace
diff --git a/libraries/base/Foreign.hs b/libraries/base/Foreign.hs
index 5976c20985..a26ffaf2bd 100644
--- a/libraries/base/Foreign.hs
+++ b/libraries/base/Foreign.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign
diff --git a/libraries/base/Foreign/C.hs b/libraries/base/Foreign/C.hs
index cb8dfef3b5..2c7fd2e24f 100644
--- a/libraries/base/Foreign/C.hs
+++ b/libraries/base/Foreign/C.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.C
diff --git a/libraries/base/Foreign/C/Error.hs b/libraries/base/Foreign/C/Error.hs
index 8d149c1dc6..89c736d065 100644
--- a/libraries/base/Foreign/C/Error.hs
+++ b/libraries/base/Foreign/C/Error.hs
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -#include "HsBase.h" #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -#include "HsBase.h" #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.C.Error
diff --git a/libraries/base/Foreign/C/String.hs b/libraries/base/Foreign/C/String.hs
index 680c81a167..becfa4ea68 100644
--- a/libraries/base/Foreign/C/String.hs
+++ b/libraries/base/Foreign/C/String.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.C.String
diff --git a/libraries/base/Foreign/C/Types.hs b/libraries/base/Foreign/C/Types.hs
index e30a2baf21..22bae5c187 100644
--- a/libraries/base/Foreign/C/Types.hs
+++ b/libraries/base/Foreign/C/Types.hs
@@ -1,7 +1,12 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , MagicHash
+ , GeneralizedNewtypeDeriving
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
-- XXX -fno-warn-unused-binds stops us warning about unused constructors,
-- but really we should just remove them if we don't want them
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.C.Types
diff --git a/libraries/base/Foreign/Concurrent.hs b/libraries/base/Foreign/Concurrent.hs
index a914d9532f..e0f2faaa95 100644
--- a/libraries/base/Foreign/Concurrent.hs
+++ b/libraries/base/Foreign/Concurrent.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Concurrent
diff --git a/libraries/base/Foreign/ForeignPtr.hs b/libraries/base/Foreign/ForeignPtr.hs
index a824914ee0..b91ffebf52 100644
--- a/libraries/base/Foreign/ForeignPtr.hs
+++ b/libraries/base/Foreign/ForeignPtr.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.ForeignPtr
diff --git a/libraries/base/Foreign/Marshal.hs b/libraries/base/Foreign/Marshal.hs
index 2c16c018fe..77a4ebf3cc 100644
--- a/libraries/base/Foreign/Marshal.hs
+++ b/libraries/base/Foreign/Marshal.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal
diff --git a/libraries/base/Foreign/Marshal/Alloc.hs b/libraries/base/Foreign/Marshal/Alloc.hs
index 5c86155d58..ddb4a90bae 100644
--- a/libraries/base/Foreign/Marshal/Alloc.hs
+++ b/libraries/base/Foreign/Marshal/Alloc.hs
@@ -1,4 +1,10 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , MagicHash
+ , UnboxedTuples
+ , ForeignFunctionInterface
+ #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal.Alloc
diff --git a/libraries/base/Foreign/Marshal/Array.hs b/libraries/base/Foreign/Marshal/Array.hs
index 9e8d08287d..1ca3e9e236 100644
--- a/libraries/base/Foreign/Marshal/Array.hs
+++ b/libraries/base/Foreign/Marshal/Array.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal.Array
diff --git a/libraries/base/Foreign/Marshal/Error.hs b/libraries/base/Foreign/Marshal/Error.hs
index b018f2ab0c..ccf514d70d 100644
--- a/libraries/base/Foreign/Marshal/Error.hs
+++ b/libraries/base/Foreign/Marshal/Error.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal.Error
diff --git a/libraries/base/Foreign/Marshal/Pool.hs b/libraries/base/Foreign/Marshal/Pool.hs
index f15d048a95..ed94e464fb 100644
--- a/libraries/base/Foreign/Marshal/Pool.hs
+++ b/libraries/base/Foreign/Marshal/Pool.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
--------------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal.Pool
diff --git a/libraries/base/Foreign/Marshal/Utils.hs b/libraries/base/Foreign/Marshal/Utils.hs
index 7fcacfa8c7..5ae677a19d 100644
--- a/libraries/base/Foreign/Marshal/Utils.hs
+++ b/libraries/base/Foreign/Marshal/Utils.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Marshal.Utils
diff --git a/libraries/base/Foreign/Ptr.hs b/libraries/base/Foreign/Ptr.hs
index 8dd220f769..b46acc1bea 100644
--- a/libraries/base/Foreign/Ptr.hs
+++ b/libraries/base/Foreign/Ptr.hs
@@ -1,4 +1,10 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , ForeignFunctionInterface
+ , MagicHash
+ , GeneralizedNewtypeDeriving
+ #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Ptr
diff --git a/libraries/base/Foreign/StablePtr.hs b/libraries/base/Foreign/StablePtr.hs
index cfcd239134..522c6fc344 100644
--- a/libraries/base/Foreign/StablePtr.hs
+++ b/libraries/base/Foreign/StablePtr.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.StablePtr
diff --git a/libraries/base/Foreign/Storable.hs b/libraries/base/Foreign/Storable.hs
index 0b0ad0cda1..700a4ff5ee 100644
--- a/libraries/base/Foreign/Storable.hs
+++ b/libraries/base/Foreign/Storable.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ScopedTypeVariables #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Storable
diff --git a/libraries/base/GHC/Arr.lhs b/libraries/base/GHC/Arr.lhs
index b9ce6b700e..fd858b1dd4 100644
--- a/libraries/base/GHC/Arr.lhs
+++ b/libraries/base/GHC/Arr.lhs
@@ -1,7 +1,8 @@
\begin{code}
+{-# LANGUAGE NoImplicitPrelude, NoBangPatterns, MagicHash, UnboxedTuples #-}
{-# OPTIONS_GHC -funbox-strict-fields #-}
-{-# LANGUAGE NoImplicitPrelude, NoBangPatterns #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Arr
diff --git a/libraries/base/GHC/Base.lhs b/libraries/base/GHC/Base.lhs
index 5ab0b26277..be1b57bbd5 100644
--- a/libraries/base/GHC/Base.lhs
+++ b/libraries/base/GHC/Base.lhs
@@ -62,12 +62,20 @@ GHC.Float Classes: Floating, RealFloat
Other Prelude modules are much easier with fewer complex dependencies.
\begin{code}
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , ExplicitForAll
+ , MagicHash
+ , UnboxedTuples
+ , ExistentialQuantification
+ , Rank2Types
+ #-}
-- -fno-warn-orphans is needed for things like:
-- Orphan rule: "x# -# x#" ALWAYS forall x# :: Int# -# x# x# = 0
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Base
diff --git a/libraries/base/GHC/Classes.hs b/libraries/base/GHC/Classes.hs
index 2934d1d98a..17d0f93e1b 100644
--- a/libraries/base/GHC/Classes.hs
+++ b/libraries/base/GHC/Classes.hs
@@ -1,5 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, StandaloneDeriving #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- XXX -fno-warn-unused-imports needed for the GHC.Tuple import below. Sigh.
{-# OPTIONS_HADDOCK hide #-}
diff --git a/libraries/base/GHC/Conc.lhs b/libraries/base/GHC/Conc.lhs
index b12785f4d3..665f82f9bb 100644
--- a/libraries/base/GHC/Conc.lhs
+++ b/libraries/base/GHC/Conc.lhs
@@ -1,7 +1,8 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_HADDOCK not-home #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Conc
diff --git a/libraries/base/GHC/Conc/IO.hs b/libraries/base/GHC/Conc/IO.hs
index ca75894dbc..fc800261b0 100644
--- a/libraries/base/GHC/Conc/IO.hs
+++ b/libraries/base/GHC/Conc/IO.hs
@@ -1,6 +1,12 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , MagicHash
+ , UnboxedTuples
+ , ForeignFunctionInterface
+ #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_HADDOCK not-home #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Conc.IO
diff --git a/libraries/base/GHC/Conc/Signal.hs b/libraries/base/GHC/Conc/Signal.hs
index 6d300c6380..851c4bb72c 100644
--- a/libraries/base/GHC/Conc/Signal.hs
+++ b/libraries/base/GHC/Conc/Signal.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, ForeignFunctionInterface #-}
module GHC.Conc.Signal
( Signal
diff --git a/libraries/base/GHC/Conc/Sync.lhs b/libraries/base/GHC/Conc/Sync.lhs
index 0808e68f21..b4de53a636 100644
--- a/libraries/base/GHC/Conc/Sync.lhs
+++ b/libraries/base/GHC/Conc/Sync.lhs
@@ -1,8 +1,16 @@
\begin{code}
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , MagicHash
+ , UnboxedTuples
+ , UnliftedFFITypes
+ , ForeignFunctionInterface
+ , DeriveDataTypeable
+ #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_HADDOCK not-home #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Conc.Sync
diff --git a/libraries/base/GHC/Conc/Windows.hs b/libraries/base/GHC/Conc/Windows.hs
index b750185586..96f034cfb8 100644
--- a/libraries/base/GHC/Conc/Windows.hs
+++ b/libraries/base/GHC/Conc/Windows.hs
@@ -1,6 +1,7 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_HADDOCK not-home #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Conc.Windows
diff --git a/libraries/base/GHC/ConsoleHandler.hs b/libraries/base/GHC/ConsoleHandler.hs
index eb5f36a813..223a2bb8c5 100644
--- a/libraries/base/GHC/ConsoleHandler.hs
+++ b/libraries/base/GHC/ConsoleHandler.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -cpp #-}
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.ConsoleHandler
diff --git a/libraries/base/GHC/Constants.hs b/libraries/base/GHC/Constants.hs
index 3df2d960fb..871829d832 100644
--- a/libraries/base/GHC/Constants.hs
+++ b/libraries/base/GHC/Constants.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
module GHC.Constants where
diff --git a/libraries/base/GHC/Desugar.hs b/libraries/base/GHC/Desugar.hs
index eaa15dcf3e..65dd645dab 100644
--- a/libraries/base/GHC/Desugar.hs
+++ b/libraries/base/GHC/Desugar.hs
@@ -1,3 +1,9 @@
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , Rank2Types
+ , ExistentialQuantification
+ #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Desugar
diff --git a/libraries/base/GHC/Enum.lhs b/libraries/base/GHC/Enum.lhs
index 7cb6f07803..ac6e9a916a 100644
--- a/libraries/base/GHC/Enum.lhs
+++ b/libraries/base/GHC/Enum.lhs
@@ -1,6 +1,5 @@
\begin{code}
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, BangPatterns, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/Environment.hs b/libraries/base/GHC/Environment.hs
index 4b9b0a1b29..60325b3611 100644
--- a/libraries/base/GHC/Environment.hs
+++ b/libraries/base/GHC/Environment.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
module GHC.Environment (getFullArgs) where
diff --git a/libraries/base/GHC/Err.lhs b/libraries/base/GHC/Err.lhs
index 9a94ce0c17..90142f400f 100644
--- a/libraries/base/GHC/Err.lhs
+++ b/libraries/base/GHC/Err.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Err
diff --git a/libraries/base/GHC/Err.lhs-boot b/libraries/base/GHC/Err.lhs-boot
index 9bef80d925..932f699de9 100644
--- a/libraries/base/GHC/Err.lhs-boot
+++ b/libraries/base/GHC/Err.lhs-boot
@@ -1,5 +1,6 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
---------------------------------------------------------------------------
-- Ghc.Err.hs-boot
---------------------------------------------------------------------------
diff --git a/libraries/base/GHC/Exception.lhs b/libraries/base/GHC/Exception.lhs
index 4dce281d50..c5b967970d 100644
--- a/libraries/base/GHC/Exception.lhs
+++ b/libraries/base/GHC/Exception.lhs
@@ -1,5 +1,9 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude
+ , ExistentialQuantification
+ , MagicHash
+ , DeriveDataTypeable
+ #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/Exts.hs b/libraries/base/GHC/Exts.hs
index ea4b8ff2a8..81a9dbb4ed 100644
--- a/libraries/base/GHC/Exts.hs
+++ b/libraries/base/GHC/Exts.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE MagicHash, UnboxedTuples, DeriveDataTypeable #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Exts
diff --git a/libraries/base/GHC/Float.lhs b/libraries/base/GHC/Float.lhs
index a353cc688c..02aba8ca85 100644
--- a/libraries/base/GHC/Float.lhs
+++ b/libraries/base/GHC/Float.lhs
@@ -1,9 +1,15 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , MagicHash
+ , UnboxedTuples
+ , ForeignFunctionInterface
+ #-}
-- We believe we could deorphan this module, by moving lots of things
-- around, but we haven't got there yet:
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Float
diff --git a/libraries/base/GHC/ForeignPtr.hs b/libraries/base/GHC/ForeignPtr.hs
index a20b000156..2e737f0fa3 100644
--- a/libraries/base/GHC/ForeignPtr.hs
+++ b/libraries/base/GHC/ForeignPtr.hs
@@ -1,6 +1,11 @@
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , MagicHash
+ , UnboxedTuples
+ #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.ForeignPtr
diff --git a/libraries/base/GHC/IO.hs b/libraries/base/GHC/IO.hs
index d5272ba866..9fa7299dd5 100644
--- a/libraries/base/GHC/IO.hs
+++ b/libraries/base/GHC/IO.hs
@@ -1,5 +1,10 @@
+{-# LANGUAGE NoImplicitPrelude
+ , BangPatterns
+ , RankNTypes
+ , MagicHash
+ , UnboxedTuples
+ #-}
{-# OPTIONS_GHC -funbox-strict-fields #-}
-{-# LANGUAGE NoImplicitPrelude, BangPatterns, RankNTypes #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IO.hs-boot b/libraries/base/GHC/IO.hs-boot
index 703fad53d6..8bd5265f12 100644
--- a/libraries/base/GHC/IO.hs-boot
+++ b/libraries/base/GHC/IO.hs-boot
@@ -1,3 +1,5 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+
module GHC.IO where
import GHC.Types
diff --git a/libraries/base/GHC/IO/Buffer.hs b/libraries/base/GHC/IO/Buffer.hs
index b72eaf2096..c019d69bea 100644
--- a/libraries/base/GHC/IO/Buffer.hs
+++ b/libraries/base/GHC/IO/Buffer.hs
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Buffer
diff --git a/libraries/base/GHC/IO/BufferedIO.hs b/libraries/base/GHC/IO/BufferedIO.hs
index 584f5a7852..874a02d1dc 100644
--- a/libraries/base/GHC/IO/BufferedIO.hs
+++ b/libraries/base/GHC/IO/BufferedIO.hs
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.BufferedIO
diff --git a/libraries/base/GHC/IO/Device.hs b/libraries/base/GHC/IO/Device.hs
index 8f907d590b..bc772b8178 100644
--- a/libraries/base/GHC/IO/Device.hs
+++ b/libraries/base/GHC/IO/Device.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -XBangPatterns #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Device
diff --git a/libraries/base/GHC/IO/Encoding.hs b/libraries/base/GHC/IO/Encoding.hs
index 44cdd86d7e..9f56966e0b 100644
--- a/libraries/base/GHC/IO/Encoding.hs
+++ b/libraries/base/GHC/IO/Encoding.hs
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding
diff --git a/libraries/base/GHC/IO/Encoding/CodePage.hs b/libraries/base/GHC/IO/Encoding/CodePage.hs
index 17c1615666..34bc0db074 100644
--- a/libraries/base/GHC/IO/Encoding/CodePage.hs
+++ b/libraries/base/GHC/IO/Encoding/CodePage.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP, BangPatterns #-}
module GHC.IO.Encoding.CodePage(
#if !defined(mingw32_HOST_OS)
) where
diff --git a/libraries/base/GHC/IO/Encoding/Iconv.hs b/libraries/base/GHC/IO/Encoding/Iconv.hs
index faf58e9860..0316698f3c 100644
--- a/libraries/base/GHC/IO/Encoding/Iconv.hs
+++ b/libraries/base/GHC/IO/Encoding/Iconv.hs
@@ -1,4 +1,9 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , ForeignFunctionInterface
+ , NondecreasingIndentation
+ #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.Iconv
diff --git a/libraries/base/GHC/IO/Encoding/Latin1.hs b/libraries/base/GHC/IO/Encoding/Latin1.hs
index 5bdf60845c..6bf18c876c 100644
--- a/libraries/base/GHC/IO/Encoding/Latin1.hs
+++ b/libraries/base/GHC/IO/Encoding/Latin1.hs
@@ -1,5 +1,9 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE NoImplicitPrelude
+ , BangPatterns
+ , NondecreasingIndentation
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.Latin1
diff --git a/libraries/base/GHC/IO/Encoding/Types.hs b/libraries/base/GHC/IO/Encoding/Types.hs
index 640ea8847d..caffa24815 100644
--- a/libraries/base/GHC/IO/Encoding/Types.hs
+++ b/libraries/base/GHC/IO/Encoding/Types.hs
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude, ExistentialQuantification #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.Types
diff --git a/libraries/base/GHC/IO/Encoding/UTF16.hs b/libraries/base/GHC/IO/Encoding/UTF16.hs
index bb38a79cd9..c3b384752e 100644
--- a/libraries/base/GHC/IO/Encoding/UTF16.hs
+++ b/libraries/base/GHC/IO/Encoding/UTF16.hs
@@ -1,5 +1,11 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , NondecreasingIndentation
+ , MagicHash
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.UTF16
diff --git a/libraries/base/GHC/IO/Encoding/UTF32.hs b/libraries/base/GHC/IO/Encoding/UTF32.hs
index 685bdaff83..1eef105960 100644
--- a/libraries/base/GHC/IO/Encoding/UTF32.hs
+++ b/libraries/base/GHC/IO/Encoding/UTF32.hs
@@ -1,5 +1,10 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE NoImplicitPrelude
+ , BangPatterns
+ , NondecreasingIndentation
+ , MagicHash
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.UTF32
diff --git a/libraries/base/GHC/IO/Encoding/UTF8.hs b/libraries/base/GHC/IO/Encoding/UTF8.hs
index 1cf8092c67..dea4fdea9e 100644
--- a/libraries/base/GHC/IO/Encoding/UTF8.hs
+++ b/libraries/base/GHC/IO/Encoding/UTF8.hs
@@ -1,5 +1,10 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
-{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE NoImplicitPrelude
+ , BangPatterns
+ , NondecreasingIndentation
+ , MagicHash
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Encoding.UTF8
diff --git a/libraries/base/GHC/IO/Exception.hs b/libraries/base/GHC/IO/Exception.hs
index 219047a293..4134fca867 100644
--- a/libraries/base/GHC/IO/Exception.hs
+++ b/libraries/base/GHC/IO/Exception.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude, DeriveDataTypeable, MagicHash #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IO/Exception.hs-boot b/libraries/base/GHC/IO/Exception.hs-boot
index f1ba7249f6..d094ef2c54 100644
--- a/libraries/base/GHC/IO/Exception.hs-boot
+++ b/libraries/base/GHC/IO/Exception.hs-boot
@@ -1,4 +1,4 @@
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module GHC.IO.Exception where
import GHC.Base
diff --git a/libraries/base/GHC/IO/FD.hs b/libraries/base/GHC/IO/FD.hs
index f2ce2750e0..b5392d477d 100644
--- a/libraries/base/GHC/IO/FD.hs
+++ b/libraries/base/GHC/IO/FD.hs
@@ -1,6 +1,13 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -XBangPatterns -fno-warn-identities #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , ForeignFunctionInterface
+ , DeriveDataTypeable
+ #-}
+{-# OPTIONS_GHC -fno-warn-identities #-}
-- Whether there are identities depends on the platform
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.FD
diff --git a/libraries/base/GHC/IO/Handle.hs b/libraries/base/GHC/IO/Handle.hs
index a2273ee5fe..f42fd55c04 100644
--- a/libraries/base/GHC/IO/Handle.hs
+++ b/libraries/base/GHC/IO/Handle.hs
@@ -1,5 +1,9 @@
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , RecordWildCards
+ , NondecreasingIndentation
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-{-# LANGUAGE NoImplicitPrelude, RecordWildCards #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IO/Handle.hs-boot b/libraries/base/GHC/IO/Handle.hs-boot
index 68379e2249..d925f08439 100644
--- a/libraries/base/GHC/IO/Handle.hs-boot
+++ b/libraries/base/GHC/IO/Handle.hs-boot
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module GHC.IO.Handle where
diff --git a/libraries/base/GHC/IO/Handle/FD.hs b/libraries/base/GHC/IO/Handle/FD.hs
index 0ef0cea62e..fd188a852d 100644
--- a/libraries/base/GHC/IO/Handle/FD.hs
+++ b/libraries/base/GHC/IO/Handle/FD.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, PatternGuards #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Handle.FD
diff --git a/libraries/base/GHC/IO/Handle/FD.hs-boot b/libraries/base/GHC/IO/Handle/FD.hs-boot
index 657af3882e..2d84884a45 100644
--- a/libraries/base/GHC/IO/Handle/FD.hs-boot
+++ b/libraries/base/GHC/IO/Handle/FD.hs-boot
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module GHC.IO.Handle.FD where
import GHC.IO.Handle.Types
diff --git a/libraries/base/GHC/IO/Handle/Internals.hs b/libraries/base/GHC/IO/Handle/Internals.hs
index 76e8b008ca..6409bbdb33 100644
--- a/libraries/base/GHC/IO/Handle/Internals.hs
+++ b/libraries/base/GHC/IO/Handle/Internals.hs
@@ -1,7 +1,13 @@
+{-# LANGUAGE NoImplicitPrelude
+ , RecordWildCards
+ , BangPatterns
+ , PatternGuards
+ , NondecreasingIndentation
+ , Rank2Types
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE NoImplicitPrelude, RecordWildCards, BangPatterns #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IO/Handle/Text.hs b/libraries/base/GHC/IO/Handle/Text.hs
index e481efd593..160e9d7391 100644
--- a/libraries/base/GHC/IO/Handle/Text.hs
+++ b/libraries/base/GHC/IO/Handle/Text.hs
@@ -1,7 +1,15 @@
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , RecordWildCards
+ , BangPatterns
+ , PatternGuards
+ , NondecreasingIndentation
+ , MagicHash
+ , ForeignFunctionInterface
+ #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
{-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE NoImplicitPrelude, RecordWildCards, BangPatterns #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IO/Handle/Types.hs b/libraries/base/GHC/IO/Handle/Types.hs
index 766c02703c..bff4681398 100644
--- a/libraries/base/GHC/IO/Handle/Types.hs
+++ b/libraries/base/GHC/IO/Handle/Types.hs
@@ -1,5 +1,11 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , ExistentialQuantification
+ , DeriveDataTypeable
+ #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IO.Handle.Types
diff --git a/libraries/base/GHC/IO/IOMode.hs b/libraries/base/GHC/IO/IOMode.hs
index 606f24ff0a..3b0943cec9 100644
--- a/libraries/base/GHC/IO/IOMode.hs
+++ b/libraries/base/GHC/IO/IOMode.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IOArray.hs b/libraries/base/GHC/IOArray.hs
index 35638ff72c..67ee0149f2 100644
--- a/libraries/base/GHC/IOArray.hs
+++ b/libraries/base/GHC/IOArray.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/IOBase.hs b/libraries/base/GHC/IOBase.hs
index c80756a3ae..4177b07ae3 100644
--- a/libraries/base/GHC/IOBase.hs
+++ b/libraries/base/GHC/IOBase.hs
@@ -1,4 +1,6 @@
+{-# LANGUAGE DeriveDataTypeable #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IOBase
diff --git a/libraries/base/GHC/IORef.hs b/libraries/base/GHC/IORef.hs
index 51466bc655..be2808d338 100644
--- a/libraries/base/GHC/IORef.hs
+++ b/libraries/base/GHC/IORef.hs
@@ -1,5 +1,7 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.IORef
diff --git a/libraries/base/GHC/Int.hs b/libraries/base/GHC/Int.hs
index 03d488e6e0..05d10c580b 100644
--- a/libraries/base/GHC/Int.hs
+++ b/libraries/base/GHC/Int.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/List.lhs b/libraries/base/GHC/List.lhs
index fe6750280c..ff8593ca42 100644
--- a/libraries/base/GHC/List.lhs
+++ b/libraries/base/GHC/List.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.List
diff --git a/libraries/base/GHC/MVar.hs b/libraries/base/GHC/MVar.hs
index 348ae51a67..8c653dca6a 100644
--- a/libraries/base/GHC/MVar.hs
+++ b/libraries/base/GHC/MVar.hs
@@ -1,5 +1,7 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -funbox-strict-fields #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}
+{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.MVar
diff --git a/libraries/base/GHC/Num.lhs b/libraries/base/GHC/Num.lhs
index 5a94949350..5dc5e753d1 100644
--- a/libraries/base/GHC/Num.lhs
+++ b/libraries/base/GHC/Num.lhs
@@ -1,5 +1,5 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, UnboxedTuples #-}
-- We believe we could deorphan this module, by moving lots of things
-- around, but we haven't got there yet:
{-# OPTIONS_GHC -fno-warn-orphans #-}
diff --git a/libraries/base/GHC/PArr.hs b/libraries/base/GHC/PArr.hs
index c9b5f9be5d..6a5328fb3c 100644
--- a/libraries/base/GHC/PArr.hs
+++ b/libraries/base/GHC/PArr.hs
@@ -1,6 +1,6 @@
+{-# LANGUAGE CPP, ParallelArrays, MagicHash, UnboxedTuples #-}
{-# OPTIONS_GHC -funbox-strict-fields #-}
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
-{-# LANGUAGE ParallelArrays #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/Pack.lhs b/libraries/base/GHC/Pack.lhs
index f3e9609a44..14ac670773 100644
--- a/libraries/base/GHC/Pack.lhs
+++ b/libraries/base/GHC/Pack.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Pack
diff --git a/libraries/base/GHC/Ptr.lhs b/libraries/base/GHC/Ptr.lhs
index 2ba743db32..bf78f713bd 100644
--- a/libraries/base/GHC/Ptr.lhs
+++ b/libraries/base/GHC/Ptr.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Ptr
diff --git a/libraries/base/GHC/Read.lhs b/libraries/base/GHC/Read.lhs
index 1a7b6a82cc..77daececb7 100644
--- a/libraries/base/GHC/Read.lhs
+++ b/libraries/base/GHC/Read.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Read
diff --git a/libraries/base/GHC/Real.lhs b/libraries/base/GHC/Real.lhs
index 68e3784ec1..be2a296439 100644
--- a/libraries/base/GHC/Real.lhs
+++ b/libraries/base/GHC/Real.lhs
@@ -1,5 +1,5 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash, UnboxedTuples #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/ST.lhs b/libraries/base/GHC/ST.lhs
index e3e24bf845..dc62000a21 100644
--- a/libraries/base/GHC/ST.lhs
+++ b/libraries/base/GHC/ST.lhs
@@ -1,5 +1,5 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples, Rank2Types #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/GHC/STRef.lhs b/libraries/base/GHC/STRef.lhs
index a0dba8d080..9306b2473c 100644
--- a/libraries/base/GHC/STRef.lhs
+++ b/libraries/base/GHC/STRef.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.STRef
diff --git a/libraries/base/GHC/Show.lhs b/libraries/base/GHC/Show.lhs
index 2c673a82c8..6cb8bf35f7 100644
--- a/libraries/base/GHC/Show.lhs
+++ b/libraries/base/GHC/Show.lhs
@@ -1,7 +1,7 @@
\begin{code}
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, BangPatterns, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Show
diff --git a/libraries/base/GHC/Show.lhs-boot b/libraries/base/GHC/Show.lhs-boot
index b01d16545b..6c5fa61308 100644
--- a/libraries/base/GHC/Show.lhs-boot
+++ b/libraries/base/GHC/Show.lhs-boot
@@ -1,5 +1,5 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module GHC.Show (showSignedInt) where
diff --git a/libraries/base/GHC/Stable.lhs b/libraries/base/GHC/Stable.lhs
index 6bac7d1cb7..e96bf687ae 100644
--- a/libraries/base/GHC/Stable.lhs
+++ b/libraries/base/GHC/Stable.lhs
@@ -1,6 +1,11 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude
+ , MagicHash
+ , UnboxedTuples
+ , ForeignFunctionInterface
+ #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Stable
diff --git a/libraries/base/GHC/Storable.lhs b/libraries/base/GHC/Storable.lhs
index 982230c921..a722873865 100644
--- a/libraries/base/GHC/Storable.lhs
+++ b/libraries/base/GHC/Storable.lhs
@@ -1,6 +1,7 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude, MagicHash, UnboxedTuples #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Storable
diff --git a/libraries/base/GHC/TopHandler.lhs b/libraries/base/GHC/TopHandler.lhs
index 0f55b38ba3..7bedcfea5d 100644
--- a/libraries/base/GHC/TopHandler.lhs
+++ b/libraries/base/GHC/TopHandler.lhs
@@ -1,7 +1,14 @@
\begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , ForeignFunctionInterface
+ , MagicHash
+ , UnboxedTuples
+ , PatternGuards
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.TopHandler
diff --git a/libraries/base/GHC/Unicode.hs b/libraries/base/GHC/Unicode.hs
index baca83342b..b34f677069 100644
--- a/libraries/base/GHC/Unicode.hs
+++ b/libraries/base/GHC/Unicode.hs
@@ -1,6 +1,7 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-}
{-# OPTIONS -#include "WCsubst.h" #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Unicode
diff --git a/libraries/base/GHC/Unicode.hs-boot b/libraries/base/GHC/Unicode.hs-boot
index 6a0e75cbb6..cc67dbbb11 100644
--- a/libraries/base/GHC/Unicode.hs-boot
+++ b/libraries/base/GHC/Unicode.hs-boot
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE NoImplicitPrelude #-}
module GHC.Unicode where
diff --git a/libraries/base/GHC/Weak.lhs b/libraries/base/GHC/Weak.lhs
index af44c88514..67046f88f3 100644
--- a/libraries/base/GHC/Weak.lhs
+++ b/libraries/base/GHC/Weak.lhs
@@ -1,7 +1,12 @@
\begin{code}
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , BangPatterns
+ , MagicHash
+ , UnboxedTuples
+ #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Weak
diff --git a/libraries/base/GHC/Word.hs b/libraries/base/GHC/Word.hs
index 9a6355c8c7..9d3e1a6ae7 100644
--- a/libraries/base/GHC/Word.hs
+++ b/libraries/base/GHC/Word.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE BangPatterns #-}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash #-}
{-# OPTIONS_HADDOCK hide #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Word
diff --git a/libraries/base/NHC/PosixTypes.hsc b/libraries/base/NHC/PosixTypes.hsc
index 64c3e28aca..efae04eeda 100644
--- a/libraries/base/NHC/PosixTypes.hsc
+++ b/libraries/base/NHC/PosixTypes.hsc
@@ -1,4 +1,6 @@
+{-# LANGUAGE CPP #-}
{-# OPTIONS_NHC98 -I/usr/include #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : NHC.PosixTypes
diff --git a/libraries/base/Numeric.hs b/libraries/base/Numeric.hs
index d6dcdfe152..4b202d0efd 100644
--- a/libraries/base/Numeric.hs
+++ b/libraries/base/Numeric.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Numeric
diff --git a/libraries/base/Prelude.hs b/libraries/base/Prelude.hs
index 8ede773a36..4c183ae38c 100644
--- a/libraries/base/Prelude.hs
+++ b/libraries/base/Prelude.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude -XBangPatterns #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Prelude
diff --git a/libraries/base/System/CPUTime.hsc b/libraries/base/System/CPUTime.hsc
index f050a681ae..a25c750ff3 100644
--- a/libraries/base/System/CPUTime.hsc
+++ b/libraries/base/System/CPUTime.hsc
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, NondecreasingIndentation, ForeignFunctionInterface #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.CPUTime
diff --git a/libraries/base/System/Environment.hs b/libraries/base/System/Environment.hs
index b85bc42e5e..2b6dec272d 100644
--- a/libraries/base/System/Environment.hs
+++ b/libraries/base/System/Environment.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP, ForeignFunctionInterface #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Environment
diff --git a/libraries/base/System/Event/Clock.hsc b/libraries/base/System/Event/Clock.hsc
index 73d2a52798..ae31a7bb54 100644
--- a/libraries/base/System/Event/Clock.hsc
+++ b/libraries/base/System/Event/Clock.hsc
@@ -1,5 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE NoImplicitPrelude, BangPatterns, ForeignFunctionInterface #-}
module System.Event.Clock (getCurrentTime) where
diff --git a/libraries/base/System/Event/Control.hs b/libraries/base/System/Event/Control.hs
index 167eb774c7..635d864111 100644
--- a/libraries/base/System/Event/Control.hs
+++ b/libraries/base/System/Event/Control.hs
@@ -1,5 +1,9 @@
-{-# LANGUAGE CPP, ForeignFunctionInterface, NoImplicitPrelude,
- ScopedTypeVariables, BangPatterns #-}
+{-# LANGUAGE CPP
+ , ForeignFunctionInterface
+ , NoImplicitPrelude
+ , ScopedTypeVariables
+ , BangPatterns
+ #-}
module System.Event.Control
(
diff --git a/libraries/base/System/Event/EPoll.hsc b/libraries/base/System/Event/EPoll.hsc
index ccc8ec032c..b2311c8940 100644
--- a/libraries/base/System/Event/EPoll.hsc
+++ b/libraries/base/System/Event/EPoll.hsc
@@ -1,5 +1,9 @@
-{-# LANGUAGE ForeignFunctionInterface, GeneralizedNewtypeDeriving,
- NoImplicitPrelude, BangPatterns #-}
+{-# LANGUAGE CPP
+ , ForeignFunctionInterface
+ , GeneralizedNewtypeDeriving
+ , NoImplicitPrelude
+ , BangPatterns
+ #-}
--
-- | A binding to the epoll I/O event notification facility
diff --git a/libraries/base/System/Event/IntMap.hs b/libraries/base/System/Event/IntMap.hs
index f02628bad4..61ae002567 100644
--- a/libraries/base/System/Event/IntMap.hs
+++ b/libraries/base/System/Event/IntMap.hs
@@ -1,4 +1,5 @@
{-# LANGUAGE CPP, MagicHash, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Event.IntMap
diff --git a/libraries/base/System/Event/KQueue.hsc b/libraries/base/System/Event/KQueue.hsc
index 4cf6a5ddcb..4a86435209 100644
--- a/libraries/base/System/Event/KQueue.hsc
+++ b/libraries/base/System/Event/KQueue.hsc
@@ -1,5 +1,10 @@
-{-# LANGUAGE ForeignFunctionInterface, GeneralizedNewtypeDeriving,
- NoImplicitPrelude, RecordWildCards, BangPatterns #-}
+{-# LANGUAGE CPP
+ , ForeignFunctionInterface
+ , GeneralizedNewtypeDeriving
+ , NoImplicitPrelude
+ , RecordWildCards
+ , BangPatterns
+ #-}
module System.Event.KQueue
(
diff --git a/libraries/base/System/Event/Manager.hs b/libraries/base/System/Event/Manager.hs
index 0c8293f5f3..9766774f55 100644
--- a/libraries/base/System/Event/Manager.hs
+++ b/libraries/base/System/Event/Manager.hs
@@ -1,5 +1,12 @@
-{-# LANGUAGE BangPatterns, CPP, ExistentialQuantification, NoImplicitPrelude,
- RecordWildCards, TypeSynonymInstances #-}
+{-# LANGUAGE BangPatterns
+ , CPP
+ , ExistentialQuantification
+ , NoImplicitPrelude
+ , RecordWildCards
+ , TypeSynonymInstances
+ , FlexibleInstances
+ #-}
+
module System.Event.Manager
( -- * Types
EventManager
diff --git a/libraries/base/System/Event/Poll.hsc b/libraries/base/System/Event/Poll.hsc
index d6929f801c..323ab9c657 100644
--- a/libraries/base/System/Event/Poll.hsc
+++ b/libraries/base/System/Event/Poll.hsc
@@ -1,5 +1,9 @@
-{-# LANGUAGE ForeignFunctionInterface, GeneralizedNewtypeDeriving,
- NoImplicitPrelude, BangPatterns #-}
+{-# LANGUAGE CPP
+ , ForeignFunctionInterface
+ , GeneralizedNewtypeDeriving
+ , NoImplicitPrelude
+ , BangPatterns
+ #-}
module System.Event.Poll
(
diff --git a/libraries/base/System/Exit.hs b/libraries/base/System/Exit.hs
index 7cca0174a0..7eb17cfbfe 100644
--- a/libraries/base/System/Exit.hs
+++ b/libraries/base/System/Exit.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Exit
diff --git a/libraries/base/System/IO.hs b/libraries/base/System/IO.hs
index d52c2c9d06..f60ecadeee 100644
--- a/libraries/base/System/IO.hs
+++ b/libraries/base/System/IO.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.IO
diff --git a/libraries/base/System/IO/Error.hs b/libraries/base/System/IO/Error.hs
index d1c4e4714f..a5aba922d0 100644
--- a/libraries/base/System/IO/Error.hs
+++ b/libraries/base/System/IO/Error.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
-----------------------------------------------------------------------------
-- |
diff --git a/libraries/base/System/IO/Unsafe.hs b/libraries/base/System/IO/Unsafe.hs
index 05f2c7bd8e..3ef3d9f3e0 100644
--- a/libraries/base/System/IO/Unsafe.hs
+++ b/libraries/base/System/IO/Unsafe.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.IO.Unsafe
diff --git a/libraries/base/System/Info.hs b/libraries/base/System/Info.hs
index b38aea265f..92da1a64b7 100644
--- a/libraries/base/System/Info.hs
+++ b/libraries/base/System/Info.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Info
diff --git a/libraries/base/System/Mem.hs b/libraries/base/System/Mem.hs
index 39a98da021..af96b5dd1c 100644
--- a/libraries/base/System/Mem.hs
+++ b/libraries/base/System/Mem.hs
@@ -1,3 +1,9 @@
+{-# LANGUAGE CPP #-}
+
+#ifdef __GLASGOW_HASKELL__
+{-# LANGUAGE ForeignFunctionInterface #-}
+#endif
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Mem
diff --git a/libraries/base/System/Mem/StableName.hs b/libraries/base/System/Mem/StableName.hs
index beeb51490c..d7d27a3c51 100644
--- a/libraries/base/System/Mem/StableName.hs
+++ b/libraries/base/System/Mem/StableName.hs
@@ -1,3 +1,11 @@
+{-# LANGUAGE CPP #-}
+#ifdef __GLASGOW_HASKELL__
+{-# LANGUAGE MagicHash #-}
+#if !defined(__PARALLEL_HASKELL__)
+{-# LANGUAGE UnboxedTuples #-}
+#endif
+#endif
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Mem.StableName
diff --git a/libraries/base/System/Mem/Weak.hs b/libraries/base/System/Mem/Weak.hs
index 61dce1d1fe..21411e531c 100644
--- a/libraries/base/System/Mem/Weak.hs
+++ b/libraries/base/System/Mem/Weak.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Mem.Weak
@@ -67,16 +69,12 @@ module System.Mem.Weak (
-- $precise
) where
-import Data.Maybe (Maybe(..))
-
#ifdef __HUGS__
import Hugs.Weak
import Prelude
#endif
#ifdef __GLASGOW_HASKELL__
-import GHC.Base (return)
-import GHC.Types (IO)
import GHC.Weak
#endif
diff --git a/libraries/base/System/Posix/Internals.hs b/libraries/base/System/Posix/Internals.hs
index 941dd5e6f1..2a6126cdc0 100644
--- a/libraries/base/System/Posix/Internals.hs
+++ b/libraries/base/System/Posix/Internals.hs
@@ -1,4 +1,4 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, ForeignFunctionInterface #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_HADDOCK hide #-}
diff --git a/libraries/base/System/Posix/Types.hs b/libraries/base/System/Posix/Types.hs
index bd286f4462..676feadc05 100644
--- a/libraries/base/System/Posix/Types.hs
+++ b/libraries/base/System/Posix/Types.hs
@@ -1,5 +1,10 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+ , NoImplicitPrelude
+ , MagicHash
+ , GeneralizedNewtypeDeriving
+ #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : System.Posix.Types
diff --git a/libraries/base/System/Timeout.hs b/libraries/base/System/Timeout.hs
index 431f709a25..b1c79b3c16 100644
--- a/libraries/base/System/Timeout.hs
+++ b/libraries/base/System/Timeout.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-------------------------------------------------------------------------------
-- |
-- Module : System.Timeout
diff --git a/libraries/base/Text/ParserCombinators/ReadP.hs b/libraries/base/Text/ParserCombinators/ReadP.hs
index 5dabfd1cd7..27bba5404e 100644
--- a/libraries/base/Text/ParserCombinators/ReadP.hs
+++ b/libraries/base/Text/ParserCombinators/ReadP.hs
@@ -1,4 +1,11 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+#ifndef __NHC__
+{-# LANGUAGE Rank2Types #-}
+#endif
+#ifdef __GLASGOW_HASKELL__
+{-# LANGUAGE MagicHash #-}
+#endif
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.ParserCombinators.ReadP
diff --git a/libraries/base/Text/ParserCombinators/ReadPrec.hs b/libraries/base/Text/ParserCombinators/ReadPrec.hs
index 361f11af86..f282d1af45 100644
--- a/libraries/base/Text/ParserCombinators/ReadPrec.hs
+++ b/libraries/base/Text/ParserCombinators/ReadPrec.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.ParserCombinators.ReadPrec
diff --git a/libraries/base/Text/Printf.hs b/libraries/base/Text/Printf.hs
index 6af2c90d55..7d4611eade 100644
--- a/libraries/base/Text/Printf.hs
+++ b/libraries/base/Text/Printf.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.Printf
diff --git a/libraries/base/Text/Read.hs b/libraries/base/Text/Read.hs
index 5ab8877efc..d935ffec41 100644
--- a/libraries/base/Text/Read.hs
+++ b/libraries/base/Text/Read.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.Read
diff --git a/libraries/base/Text/Read/Lex.hs b/libraries/base/Text/Read/Lex.hs
index 33291354b8..222d6cf06d 100644
--- a/libraries/base/Text/Read/Lex.hs
+++ b/libraries/base/Text/Read/Lex.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.Read.Lex
diff --git a/libraries/base/Text/Show.hs b/libraries/base/Text/Show.hs
index d540a1d077..4d23e578df 100644
--- a/libraries/base/Text/Show.hs
+++ b/libraries/base/Text/Show.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.Show
diff --git a/libraries/base/Text/Show/Functions.hs b/libraries/base/Text/Show/Functions.hs
index c66d2e3156..1ae46aa29d 100644
--- a/libraries/base/Text/Show/Functions.hs
+++ b/libraries/base/Text/Show/Functions.hs
@@ -1,5 +1,7 @@
+{-# LANGUAGE CPP #-}
-- This module deliberately declares orphan instances:
{-# OPTIONS_GHC -fno-warn-orphans #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Text.Show.Functions
diff --git a/libraries/base/Unsafe/Coerce.hs b/libraries/base/Unsafe/Coerce.hs
index 516d7e06b6..421cdd0bdf 100644
--- a/libraries/base/Unsafe/Coerce.hs
+++ b/libraries/base/Unsafe/Coerce.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, MagicHash #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : Unsafe.Coerce
diff --git a/libraries/base/base.cabal b/libraries/base/base.cabal
index ecb0d2deee..c4eadf703a 100644
--- a/libraries/base/base.cabal
+++ b/libraries/base/base.cabal
@@ -99,13 +99,6 @@ Library {
if os(windows)
exposed-modules: GHC.IO.Encoding.CodePage.Table
GHC.Conc.Windows
- extensions: MagicHash, ExistentialQuantification, Rank2Types,
- ScopedTypeVariables, UnboxedTuples,
- ForeignFunctionInterface, UnliftedFFITypes,
- DeriveDataTypeable, GeneralizedNewtypeDeriving,
- FlexibleInstances, StandaloneDeriving,
- PatternGuards, EmptyDataDecls, NoImplicitPrelude,
- NondecreasingIndentation
}
exposed-modules:
Control.Applicative,
@@ -228,7 +221,6 @@ Library {
System.Event.Thread
System.Event.Unique
}
- extensions: CPP
-- We need to set the package name to base (without a version number)
-- as it's magic.
ghc-options: -package-name base
diff --git a/libraries/base/codepages/MakeTable.hs b/libraries/base/codepages/MakeTable.hs
index 951274e8a4..e17380b538 100644
--- a/libraries/base/codepages/MakeTable.hs
+++ b/libraries/base/codepages/MakeTable.hs
@@ -200,7 +200,7 @@ compress n ms = runState (mapM lookupOrAdd chunks) (Map.empty, Map.empty)
-- Static parts of the generated module.
languageDirectives :: [String]
-languageDirectives = ["{-# LANGUAGE MagicHash #-}"]
+languageDirectives = ["{-# LANGUAGE CPP, MagicHash #-}"]
firstComment :: [FilePath] -> [String]