diff --git a/LIO/DCLabel.hs b/LIO/DCLabel.hs
--- a/LIO/DCLabel.hs
+++ b/LIO/DCLabel.hs
@@ -111,6 +111,7 @@
   ) where
 
 import safe Control.Applicative
+import safe Control.Monad
 import safe Data.Bits
 import safe qualified Data.ByteString as S
 import Data.Hashable
@@ -213,9 +214,10 @@
           single = dSingleton <$> readPrec
           clause = parens $ prec minPrec $ do
             let next = do Symbol "\\/" <- lexP
-                          liftA2 (:) readPrec next
-                       <++ pure []
-            dFromList <$> liftA2 (:) readPrec next
+                          next'
+                       <++ return []
+                next' = ((:) <$> readPrec) `ap` next
+            dFromList <$> next'
 
 instance Monoid Disjunction where
   mempty = dFalse
@@ -270,9 +272,10 @@
           single = cSingleton <$> readPrec
           formula = parens $ prec 7 $ do
             let next = do Symbol "/\\" <- lexP
-                          liftA2 (:) readPrec next
-                       <++ pure []
-            cFromList <$> liftA2 (:) readPrec next
+                          next'
+                       <++ return []
+                next' = ((:) <$> readPrec) `ap` next
+            cFromList <$> next'
 
 instance Monoid CNF where
   mempty = cTrue
diff --git a/LIO/Exception.hs b/LIO/Exception.hs
--- a/LIO/Exception.hs
+++ b/LIO/Exception.hs
@@ -21,6 +21,9 @@
   , onException, finally, bracket, evaluate
   ) where
 
+import safe Prelude ((.), ($), (==), undefined, flip)
+import safe Data.Maybe
+import safe Data.Either
 import safe Control.Exception (Exception(..), SomeException(..))
 import safe qualified Control.Exception as IO
 import safe Control.Monad
diff --git a/LIO/Run.hs b/LIO/Run.hs
--- a/LIO/Run.hs
+++ b/LIO/Run.hs
@@ -12,6 +12,7 @@
 module LIO.Run (LIOState(..), runLIO, tryLIO, evalLIO, privInit) where
 
 import safe Control.Exception
+import safe qualified Control.Exception as IO
 import safe Data.IORef
 
 import safe LIO.Label
@@ -26,7 +27,7 @@
 runLIO :: LIO l a -> LIOState l -> IO (a, LIOState l)
 runLIO (LIOTCB m) s0 = do
   sp <- newIORef s0
-  a <- m sp `catch` \e -> return $ throw $ makeCatchable e
+  a <- m sp `IO.catch` \e -> return $ throw $ makeCatchable e
   s1 <- readIORef sp
   return (a, s1)
 
diff --git a/lio.cabal b/lio.cabal
--- a/lio.cabal
+++ b/lio.cabal
@@ -1,5 +1,5 @@
 Name:           lio
-Version:        0.11.4.1
+Version:        0.11.4.2
 Cabal-Version:  >= 1.8
 Build-type:     Simple
 License:        GPL
@@ -65,7 +65,7 @@
   Build-Depends:
     base          >= 4.5     && < 5.0
    ,containers
-   ,bytestring
+   ,bytestring    >= 0.10
    ,hashable      >= 1.2
 
   GHC-options: -Wall -fno-warn-orphans
