diff --git a/protolude.cabal b/protolude.cabal
--- a/protolude.cabal
+++ b/protolude.cabal
@@ -1,5 +1,5 @@
 name:                protolude
-version:             0.1.2
+version:             0.1.3
 synopsis:            A sensible set of defaults for writing custom Preludes.
 description:         A sensible set of defaults for writing custom Preludes.
 homepage:            https://github.com/sdiehl/protolude
diff --git a/src/Base.hs b/src/Base.hs
--- a/src/Base.hs
+++ b/src/Base.hs
@@ -16,17 +16,21 @@
 import GHC.Enum as X
 import GHC.Real as X
 import GHC.Float as X
-import GHC.Show as X
+import GHC.Show as X (
+    Show(..)
+  )
 import GHC.Exts as X (
     Constraint
   , Ptr
   , FunPtr
-  , the
   )
 import GHC.Base as X (
     (++)
   , seq
   , asTypeOf
+  , ord
+  , maxInt
+  , minInt
   )
 import System.IO as X (
     print
@@ -34,11 +38,17 @@
   , putStrLn
   )
 
-#if ( __GLASGOW_HASKELL__ >= 800 )
-import GHC.Types as X hiding (Any)
-#else
-import GHC.Types as X
+import GHC.Types as X (
+    Bool
+  , Char
+  , Int
+  , Word
+  , Ordering
+  , IO
+#if ( __GLASGOW_HASKELL__ >= 710 )
+  , Coercible
 #endif
+  )
 
 infixr 0 $!
 
@@ -46,6 +56,7 @@
 f $! x  = let !vx = x in f vx
 
 #endif
+
 
 -- Simple Haskell Compiler
 #if defined(__SHC_HASKELL__)
diff --git a/src/List.hs b/src/List.hs
--- a/src/List.hs
+++ b/src/List.hs
@@ -5,6 +5,7 @@
   head,
   ordNub,
   sortOn,
+  list,
 ) where
 
 import Data.List (sortBy)
@@ -12,6 +13,7 @@
 import Data.Ord (Ord, comparing)
 import Data.Foldable (Foldable, foldr)
 import Data.Function ((.))
+import Data.Functor (fmap)
 import Control.Monad (return)
 import qualified Data.Set as Set
 
@@ -30,3 +32,8 @@
       if x `Set.member` s
       then go s xs
       else x : go (Set.insert x s) xs
+
+list :: [b] -> (a -> b) -> [a] -> [b]
+list def f xs = case xs of
+  [] -> def
+  _  -> fmap f xs
diff --git a/src/Protolude.hs b/src/Protolude.hs
--- a/src/Protolude.hs
+++ b/src/Protolude.hs
@@ -16,8 +16,6 @@
   LByteString,
 ) where
 
-{-import qualified Prelude as P-}
-
 import List as X
 import Show as X
 import Bool as X
@@ -105,6 +103,23 @@
   , reverse
   , replicate
   , take
+  , sortBy
+  , sort
+  , intersperse
+  , transpose
+  , subsequences
+  , permutations
+  , scanl
+  , scanr
+  , iterate
+  , repeat
+  , cycle
+  , unfoldr
+  , takeWhile
+  , dropWhile
+  , group
+  , inits
+  , tails
   , zipWith
   , zip
   )
@@ -114,6 +129,18 @@
 import Data.IntMap as X (IntMap)
 import Data.IntSet as X (IntSet)
 
+#if ( __GLASGOW_HASKELL__ >= 710 )
+import Data.Proxy as X (
+    Proxy(..)
+  )
+
+import Data.Void as X (
+    Void
+  , absurd
+  , vacuous
+  )
+#endif
+
 -- Monad transformers
 import Control.Monad.State as X (
     MonadState
@@ -166,7 +193,7 @@
 import Data.Bits as X
 import Data.Word as X
 import Data.Bool as X hiding (bool)
-import Data.Char as X (Char)
+import Data.Char as X (chr)
 import Data.Maybe as X hiding (fromJust)
 import Data.Either as X
 import Data.Complex as X
@@ -180,7 +207,6 @@
   , on
   )
 
-
 -- Genericss
 import GHC.Generics (
     Generic(..)
@@ -222,6 +248,8 @@
   , StringConv
   )
 
+import Data.String as X (IsString)
+
 -- Printf
 import Text.Printf as X (
     PrintfArg
@@ -231,6 +259,7 @@
 
 -- IO
 import System.Exit as X
+--import System.Info as X
 import System.Environment as X (getArgs)
 import System.IO as X (
     Handle
