diff --git a/Source/Environment.hs b/Source/Environment.hs
--- a/Source/Environment.hs
+++ b/Source/Environment.hs
@@ -29,7 +29,6 @@
     )where
 
 import Lawless
-import IO
 
 import qualified System.Environment as SE
 
diff --git a/Source/IO.hs b/Source/IO.hs
--- a/Source/IO.hs
+++ b/Source/IO.hs
@@ -10,6 +10,7 @@
 -}
 
 module IO (
+    IO,
     getLine,
     hGetLine,
     putStr,
@@ -58,7 +59,6 @@
 
 import Lawless
 -- import IO.Base
-import Control.Monad.IO.Class
 import qualified System.Path.Directory as D
 import qualified System.Path.IO as PIO
 import qualified Text.IO as TIO
@@ -66,11 +66,10 @@
 import Printer
 import Path
 import qualified System.Path.PartClass as PC
-import Exception
 import qualified System.IO as SIO
 import System.IO (Handle, stdin, stdout, stderr, SeekMode(..), IOMode(..))
-import Data.Typeable
 import Data.Text.Lazy.Builder (Builder)
+import Exception
 
 default (Text)
 
diff --git a/Source/IO/Base.hs b/Source/IO/Base.hs
--- a/Source/IO/Base.hs
+++ b/Source/IO/Base.hs
@@ -10,8 +10,11 @@
 
 module IO.Base (
     module Control.Monad.Base,
-        module Control.Monad.Trans.Control
+    module Control.Monad.Trans.Control,
+    IO
     ) where
 
 import Control.Monad.Base
 import Control.Monad.Trans.Control
+
+import System.IO (IO)
diff --git a/Source/Lawless.hs b/Source/Lawless.hs
--- a/Source/Lawless.hs
+++ b/Source/Lawless.hs
@@ -1,7 +1,4 @@
 module Lawless (
-    module Applicative,
-    module Base,
-    module Bool,
     module Control.Applicative,
     module Control.Lens,
     module Data.Bool,
@@ -14,23 +11,51 @@
     module Data.Ord,
     module Data.Text.Lens,
     module Data.Traversable,
-    module Either,
-    module Functor,
-    module List,
-    module Monad,
+    module Prelude,
+    module Protolude,
     module Text,
     module Textual,
     module Unicode
     ) where
 
-import Applicative
-import Base hiding (print, putStr, putStrLn)
-import Bool
-import Either
-import Functor
-import List hiding (sum, product)
-import Monad
-import Control.Lens hiding (strict)
+import Prelude (
+    Integer,
+    Num(..),
+    Bounded(..),
+    Enum(..),
+    Num(..),
+    Integral(..),
+    Real(..),
+    Show(..),
+    fromIntegral)
+
+import Protolude hiding(
+    print,
+    putStr,
+    putStrLn,
+    getLine,
+    hPutStr,
+    hPutStrLn,
+    readFile,
+    writeFile,
+    appendFile,
+    sum,
+    product,
+    show,
+    (<&>),
+    to,
+    from,
+    unsnoc,
+    uncons,
+    (<.>),
+    Strict,
+    atomically,
+    async,
+    bracket,
+    bracket_,
+    try,
+    finally)
+import Control.Lens
 import Data.Eq (Eq(..))
 import Data.Ord (Ord(..))
 
diff --git a/Source/STM/Base.hs b/Source/STM/Base.hs
--- a/Source/STM/Base.hs
+++ b/Source/STM/Base.hs
@@ -13,7 +13,6 @@
     module Control.Concurrent.STM.TVar,
     module Control.Concurrent.STM.TMVar,
     module Control.Concurrent.STM.TBChan,
-    IO,
     STM,
     atomically,
     newTVarIO,
@@ -35,7 +34,6 @@
 import Control.Concurrent.STM.TBChan (
     TBChan, readTBChan, writeTBChan, isEmptyTBChan
     )
-import Data.Word
 
 -- | 'STM.atomically' lifted to 'MonadBase' 'IO'.
 atomically :: MonadBase IO m => STM α -> m α
diff --git a/Source/STM/Hub.hs b/Source/STM/Hub.hs
--- a/Source/STM/Hub.hs
+++ b/Source/STM/Hub.hs
@@ -23,7 +23,6 @@
 
 import Lawless
 import STM.Base
-import Data.Word
 
 -- * The 'Hub'
 
diff --git a/Source/Text/IO.hs b/Source/Text/IO.hs
--- a/Source/Text/IO.hs
+++ b/Source/Text/IO.hs
@@ -27,7 +27,6 @@
 import qualified Data.Text.IO as TIO
 import Data.Text (Text)
 import System.Path
-import Control.Monad.IO.Class
 import System.Path.IO (Handle, hIsEOF)
 import Machine
 
diff --git a/Source/Time.hs b/Source/Time.hs
--- a/Source/Time.hs
+++ b/Source/Time.hs
@@ -21,7 +21,7 @@
 import Data.Time.Format
 import Generics
 import IO (MonadIO, liftIO)
-import Lawless
+import Lawless hiding (put, get)
 import qualified Textual as T
 import qualified Parser as P
 import Aeson
diff --git a/Tests/TestTextMachine.hs b/Tests/TestTextMachine.hs
--- a/Tests/TestTextMachine.hs
+++ b/Tests/TestTextMachine.hs
@@ -14,7 +14,6 @@
 module TestTextMachine where
 
 import Lawless
-import Text hiding (text)
 
 import Arbitrary()
 import Test.Framework
diff --git a/liblawless.cabal b/liblawless.cabal
--- a/liblawless.cabal
+++ b/liblawless.cabal
@@ -1,5 +1,5 @@
 name:                liblawless
-version:             0.25.2
+version:             0.26.0
 synopsis:            Prelude based on protolude for GHC 8 and beyond.
 license:             GPL-3
 license-file:        LICENSE
@@ -29,10 +29,10 @@
 source-repository this
   type:     git
   location:   https://gitlab.com/theunixman/liblawless.git
-  tag: v0.25.2
+  tag: v0.26.0
 
 library
-  ghc-options: -Wall -Wno-redundant-constraints -Wno-type-defaults -O2
+  ghc-options: -Wall -Wno-redundant-constraints -Wno-type-defaults
   exposed-modules:
                   Aeson
                   Arbitrary
@@ -90,19 +90,19 @@
                      TypeSynonymInstances
   build-depends:
                 aeson                      >= 0.11.2 && < 0.12,
-                base                       >=4.9 && <4.10,
+                base                       >= 4.9 && < 5,
                 base-unicode-symbols       >= 0.2.2 && < 0.3,
                 binary                     >= 0.8.3 && < 0.9,
                 boomerang                  >= 1.4.5.2 && < 1.5,
                 bytestring                 >= 0.10.8 && < 0.11,
                 containers                 >= 0.5.7 && < 0.6,
                 containers-unicode-symbols >= 0.3.1 && < 0.4,
-                concurrent-machines >= 0.2.3.3 && < 0.3,
+                lawless-concurrent-machines >= 0.2.3.3 && < 0.5,
                 contravariant              >= 1.4 && < 1.5,
                 data-textual               >= 0.3.0 && < 0.4,
                 dns                        >= 2.0.8 && < 2.1,
                 exceptions                 >= 0.8.3 && < 0.9,
-                hjsonschema                >= 1.6.2 && < 1.7,
+                hjsonschema                >= 1.6.2 && < 1.9,
                 lens                       >= 4.14 && < 4.16,
                 lifted-async  >= 0.9.1.1 && < 0.10,
                 lifted-base  >= 0.2.3 && < 0.3,
@@ -114,7 +114,7 @@
                 network-ip                 >= 0.3 && < 0.4,
                 parsers                    >= 0.12.4 && < 0.13,
                 pathtype                   >= 0.8 && < 0.9,
-                protolude                  >= 0.1.10 && < 0.2,
+                protolude                  >= 0.1.10 && < 0.4,
                 random                     >= 1.1 && < 1.2,
                 semigroups                 >= 0.18.2 && < 0.19,
                 stm                        >= 2.4.4 && < 2.5,
@@ -124,7 +124,7 @@
                 temporary                  >= 1.2.0 && < 1.3,
                 text                       >= 1.2.2 && < 1.3,
                 text-printer               >= 0.4 && < 0.5,
-                time                       >= 1.6.0 && < 1.7,
+                time                       >= 1.6.0 && < 1.9,
                 transformers               >= 0.5.2 && < 0.6,
                 transformers-base >= 0.4.4 && < 0.5,
                 zippers                    >= 0.2.2 && < 0.3
@@ -147,14 +147,17 @@
   ghc-options: -threaded
   main-is: Main.hs
   other-modules:
+                Line
                 TestAeson
+                TestAesonEncoding
                 TestTemporary
+                TestTextMachine
                 TestTime
                 Paths_liblawless
   build-depends:
                 QuickCheck                 >= 2.8 && < 2.10,
                 aeson < 1.0,
-                base >= 4.9 && < 4.10,
+                base >= 4.9 && < 5,
                 binary >= 0.7.5.0,
                 bytestring,
                 exceptions >= 0.8.3,
