diff --git a/Data/ByteString/Char8/SaferFileHandles.hs b/Data/ByteString/Char8/SaferFileHandles.hs
--- a/Data/ByteString/Char8/SaferFileHandles.hs
+++ b/Data/ByteString/Char8/SaferFileHandles.hs
@@ -36,7 +36,7 @@
 import qualified Data.ByteString.Char8 as B
 
 -- from regions:
-import Control.Monad.Trans.Region ( ParentOf )
+import Control.Monad.Trans.Region ( AncestorRegion )
 
 -- from explicit-iomodes-bytestring:
 import qualified Data.ByteString.Char8.ExplicitIOModes as E ( hGetLine
@@ -61,38 +61,38 @@
 -------------------------------------------------------------------------------
 
 -- | Wraps: @Data.ByteString.'B.hGetLine'@.
-hGetLine ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetLine ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
          ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetLine = wrap E.hGetLine
 
 -- | Wraps: @Data.ByteString.'B.hGetContents'@.
-hGetContents ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
              ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetContents = wrap E.hGetContents
 
 -- | Wraps: @Data.ByteString.'B.hGet'@.
-hGet ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGet = wrap2 E.hGet
 
 -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.
-hGetNonBlocking ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
                 ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGetNonBlocking = wrap2 E.hGetNonBlocking
 
 
 -- | Wraps: @Data.ByteString.'B.hPut'@.
-hPut ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPut = wrap2 E.hPut
 
 -- | Wraps: @Data.ByteString.'B.hPutStr'@.
-hPutStr ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
         ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPutStr = wrap2 E.hPutStr
 
 -- | Wraps: @Data.ByteString.'B.hPutStrLn'@.
-hPutStrLn ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPutStrLn ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
           ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPutStrLn = wrap2 E.hPutStrLn
 
diff --git a/Data/ByteString/Lazy/Char8/SaferFileHandles.hs b/Data/ByteString/Lazy/Char8/SaferFileHandles.hs
--- a/Data/ByteString/Lazy/Char8/SaferFileHandles.hs
+++ b/Data/ByteString/Lazy/Char8/SaferFileHandles.hs
@@ -33,7 +33,7 @@
 import qualified Data.ByteString.Lazy.Char8 as B
 
 -- from regions:
-import Control.Monad.Trans.Region ( ParentOf )
+import Control.Monad.Trans.Region ( AncestorRegion )
 
 -- from explicit-iomodes-bytestring:
 import qualified Data.ByteString.Lazy.Char8.ExplicitIOModes as E
@@ -51,23 +51,23 @@
 -------------------------------------------------------------------------------
 
 -- | Wraps: @Data.ByteString.'B.hGetContents'@.
-hGetContents ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
              ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetContents = wrap E.hGetContents
 
 -- | Wraps: @Data.ByteString.'B.hGet'@.
-hGet ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGet = wrap2 E.hGet
 
 -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.
-hGetNonBlocking ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
                 ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGetNonBlocking = wrap2 E.hGetNonBlocking
 
 
 -- | Wraps: @Data.ByteString.'B.hPut'@.
-hPut ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPut = wrap2 E.hPut
 
diff --git a/Data/ByteString/Lazy/SaferFileHandles.hs b/Data/ByteString/Lazy/SaferFileHandles.hs
--- a/Data/ByteString/Lazy/SaferFileHandles.hs
+++ b/Data/ByteString/Lazy/SaferFileHandles.hs
@@ -34,7 +34,7 @@
 import qualified Data.ByteString.Lazy as B
 
 -- from regions:
-import Control.Monad.Trans.Region ( ParentOf )
+import Control.Monad.Trans.Region ( AncestorRegion )
 
 -- from explicit-iomodes-bytestring:
 import qualified Data.ByteString.Lazy.ExplicitIOModes as E ( hGetContents
@@ -57,28 +57,28 @@
 -------------------------------------------------------------------------------
 
 -- | Wraps: @Data.ByteString.'B.hGetContents'@.
-hGetContents ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
              ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetContents = wrap E.hGetContents
 
 -- | Wraps: @Data.ByteString.'B.hGet'@.
-hGet ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGet = wrap2 E.hGet
 
 -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.
-hGetNonBlocking ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
                 ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGetNonBlocking = wrap2 E.hGetNonBlocking
 
 
 -- | Wraps: @Data.ByteString.'B.hPut'@.
-hPut ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPut = wrap2 E.hPut
 
 -- | Wraps: @Data.ByteString.'B.hPutStr'@.
-hPutStr ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
         ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPutStr = wrap2 E.hPutStr
 
diff --git a/Data/ByteString/SaferFileHandles.hs b/Data/ByteString/SaferFileHandles.hs
--- a/Data/ByteString/SaferFileHandles.hs
+++ b/Data/ByteString/SaferFileHandles.hs
@@ -36,7 +36,7 @@
 import qualified Data.ByteString as B
 
 -- from regions:
-import Control.Monad.Trans.Region ( ParentOf )
+import Control.Monad.Trans.Region ( AncestorRegion )
 
 -- from explicit-iomodes-bytestring:
 import qualified Data.ByteString.ExplicitIOModes as E ( hGetLine
@@ -61,37 +61,37 @@
 -------------------------------------------------------------------------------
 
 -- | Wraps: @Data.ByteString.'B.hGetLine'@.
-hGetLine ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetLine ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
          ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetLine = wrap E.hGetLine
 
 -- | Wraps: @Data.ByteString.'B.hGetContents'@.
-hGetContents ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
              ⇒ RegionalFileHandle ioMode pr → cr B.ByteString
 hGetContents = wrap E.hGetContents
 
 -- | Wraps: @Data.ByteString.'B.hGet'@.
-hGet ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGet = wrap2 E.hGet
 
 -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.
-hGetNonBlocking ∷ (pr `ParentOf` cr, MonadIO cr, ReadModes ioMode)
+hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)
                 ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString
 hGetNonBlocking = wrap2 E.hGetNonBlocking
 
 -- | Wraps: @Data.ByteString.'B.hPut'@.
-hPut ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
      ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPut = wrap2 E.hPut
 
 -- | Wraps: @Data.ByteString.'B.hPutStr'@.
-hPutStr ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
         ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPutStr = wrap2 E.hPutStr
 
 -- | Wraps: @Data.ByteString.'B.hPutStrLn'@.
-hPutStrLn ∷ (pr `ParentOf` cr, MonadIO cr, WriteModes ioMode)
+hPutStrLn ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)
           ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()
 hPutStrLn = wrap2 E.hPutStrLn
 
diff --git a/safer-file-handles-bytestring.cabal b/safer-file-handles-bytestring.cabal
--- a/safer-file-handles-bytestring.cabal
+++ b/safer-file-handles-bytestring.cabal
@@ -1,5 +1,5 @@
 name:          safer-file-handles-bytestring
-version:       0.1.0.2
+version:       0.1.0.3
 cabal-version: >=1.6
 build-type:    Simple
 license:       BSD3
@@ -18,12 +18,12 @@
 
 Library
   GHC-Options: -Wall
-  build-depends: base               	     >= 4   && < 4.3
+  build-depends: base               	     >= 4   && < 4.4
                , bytestring         	     >= 0.9 && < 0.10
-               , regions            	     >= 0.6 && < 0.8
+               , regions            	     >= 0.8 && < 0.9
                , transformers       	     >= 0.2 && < 0.3
                , explicit-iomodes-bytestring >= 0.1 && < 0.2
-               , safer-file-handles          >= 0.6 && < 0.9
+               , safer-file-handles          >= 0.9 && < 0.10
   exposed-modules: Data.ByteString.SaferFileHandles
                    Data.ByteString.Char8.SaferFileHandles
                    Data.ByteString.Lazy.SaferFileHandles
