diff --git a/pipes-safe.cabal b/pipes-safe.cabal
--- a/pipes-safe.cabal
+++ b/pipes-safe.cabal
@@ -1,6 +1,6 @@
 Name: pipes-safe
-Version: 2.3.2
-Cabal-Version: >=1.8.0.2
+Version: 2.3.3
+Cabal-Version: >=1.10
 Build-Type: Simple
 License: BSD3
 License-File: LICENSE
@@ -53,3 +53,4 @@
         Pipes.Safe.Prelude
     HS-Source-Dirs: src
     GHC-Options: -O2 -Wall
+    Default-Language: Haskell2010
diff --git a/src/Pipes/Safe.hs b/src/Pipes/Safe.hs
--- a/src/Pipes/Safe.hs
+++ b/src/Pipes/Safe.hs
@@ -290,7 +290,7 @@
     finalization without exiting the 'Proxy' monad.
 -}
 runSafeP :: (MonadMask m, MonadIO m) => Effect (SafeT m) r -> Effect' m r
-runSafeP = lift . runSafeT . runEffect
+runSafeP e = lift . runSafeT . runEffect $ e
 {-# INLINABLE runSafeP #-}
 
 -- | Token used to 'release' a previously 'register'ed finalizer
diff --git a/src/Pipes/Safe/Prelude.hs b/src/Pipes/Safe/Prelude.hs
--- a/src/Pipes/Safe/Prelude.hs
+++ b/src/Pipes/Safe/Prelude.hs
@@ -42,5 +42,5 @@
     necessary
 -}
 writeFile :: MonadSafe m => FilePath -> Consumer' String m r
-writeFile file = withFile file IO.WriteMode P.toHandle
+writeFile file = withFile file IO.WriteMode $ \h -> P.toHandle h
 {-# INLINABLE writeFile #-}
