packages feed

safer-file-handles-bytestring 0.1.0.3 → 0.2

raw patch · 5 files changed

+106/−66 lines, 5 filesdep ~regionsdep ~safer-file-handlesPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: regions, safer-file-handles

API changes (from Hackage documentation)

- Data.ByteString.Char8.SaferFileHandles: hGet :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Char8.SaferFileHandles: hGet :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Char8.SaferFileHandles: hGetContents :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.Char8.SaferFileHandles: hGetContents :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.Char8.SaferFileHandles: hGetLine :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.Char8.SaferFileHandles: hGetLine :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.Char8.SaferFileHandles: hGetNonBlocking :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Char8.SaferFileHandles: hGetNonBlocking :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Char8.SaferFileHandles: hPut :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Char8.SaferFileHandles: hPut :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.Char8.SaferFileHandles: hPutStr :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Char8.SaferFileHandles: hPutStr :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.Char8.SaferFileHandles: hPutStrLn :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Char8.SaferFileHandles: hPutStrLn :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.Lazy.Char8.SaferFileHandles: hGet :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Lazy.Char8.SaferFileHandles: hGet :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Lazy.Char8.SaferFileHandles: hGetContents :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.Lazy.Char8.SaferFileHandles: hGetContents :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.Lazy.Char8.SaferFileHandles: hGetNonBlocking :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Lazy.Char8.SaferFileHandles: hGetNonBlocking :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Lazy.Char8.SaferFileHandles: hPut :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Lazy.Char8.SaferFileHandles: hPut :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.Lazy.SaferFileHandles: hGet :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Lazy.SaferFileHandles: hGet :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Lazy.SaferFileHandles: hGetContents :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.Lazy.SaferFileHandles: hGetContents :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.Lazy.SaferFileHandles: hGetNonBlocking :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.Lazy.SaferFileHandles: hGetNonBlocking :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.Lazy.SaferFileHandles: hPut :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Lazy.SaferFileHandles: hPut :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.Lazy.SaferFileHandles: hPutStr :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.Lazy.SaferFileHandles: hPutStr :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.SaferFileHandles: hGet :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.SaferFileHandles: hGet :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.SaferFileHandles: hGetContents :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.SaferFileHandles: hGetContents :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.SaferFileHandles: hGetLine :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> cr ByteString
+ Data.ByteString.SaferFileHandles: hGetLine :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> cr ByteString
- Data.ByteString.SaferFileHandles: hGetNonBlocking :: (AncestorRegion pr cr, MonadIO cr, ReadModes ioMode) => RegionalFileHandle ioMode pr -> Int -> cr ByteString
+ Data.ByteString.SaferFileHandles: hGetNonBlocking :: (FileHandle handle, ReadModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> Int -> cr ByteString
- Data.ByteString.SaferFileHandles: hPut :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.SaferFileHandles: hPut :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.SaferFileHandles: hPutStr :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.SaferFileHandles: hPutStr :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()
- Data.ByteString.SaferFileHandles: hPutStrLn :: (AncestorRegion pr cr, MonadIO cr, WriteModes ioMode) => RegionalFileHandle ioMode pr -> ByteString -> cr ()
+ Data.ByteString.SaferFileHandles: hPutStrLn :: (FileHandle handle, WriteModes ioMode, AncestorRegion pr cr, MonadIO cr) => handle ioMode pr -> ByteString -> cr ()

Files

Data/ByteString/Char8/SaferFileHandles.hs view
@@ -50,10 +50,8 @@                                                             )  -- from safer-file-handles:-import System.IO.SaferFileHandles          ( RegionalFileHandle-                                           , ReadModes, WriteModes-                                           )-import System.IO.SaferFileHandles.Unsafe   ( wrap, wrap2 )+import System.IO.SaferFileHandles        ( FileHandle, ReadModes, WriteModes )+import System.IO.SaferFileHandles.Unsafe ( wrap, wrap2 )   -------------------------------------------------------------------------------@@ -61,39 +59,53 @@ -------------------------------------------------------------------------------  -- | Wraps: @Data.ByteString.'B.hGetLine'@.-hGetLine ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-         ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetLine ∷ ( FileHandle handle, ReadModes ioMode+           , pr `AncestorRegion` cr, MonadIO cr+           )+         ⇒ handle ioMode pr → cr B.ByteString hGetLine = wrap E.hGetLine  -- | Wraps: @Data.ByteString.'B.hGetContents'@.-hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-             ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetContents ∷ ( FileHandle handle, ReadModes ioMode+               , pr `AncestorRegion` cr, MonadIO cr+               )+             ⇒ handle ioMode pr → cr B.ByteString hGetContents = wrap E.hGetContents  -- | Wraps: @Data.ByteString.'B.hGet'@.-hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGet ∷ ( FileHandle handle, ReadModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → Int → cr B.ByteString hGet = wrap2 E.hGet  -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.-hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-                ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGetNonBlocking ∷ ( FileHandle handle, ReadModes ioMode+                  , pr `AncestorRegion` cr, MonadIO cr+                  )+                ⇒ handle ioMode pr → Int → cr B.ByteString hGetNonBlocking = wrap2 E.hGetNonBlocking   -- | Wraps: @Data.ByteString.'B.hPut'@.-hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPut ∷ ( FileHandle handle, WriteModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → B.ByteString → cr () hPut = wrap2 E.hPut  -- | Wraps: @Data.ByteString.'B.hPutStr'@.-hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-        ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPutStr ∷ ( FileHandle handle, WriteModes ioMode+          , pr `AncestorRegion` cr, MonadIO cr+          )+        ⇒ handle ioMode pr → B.ByteString → cr () hPutStr = wrap2 E.hPutStr  -- | Wraps: @Data.ByteString.'B.hPutStrLn'@.-hPutStrLn ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-          ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPutStrLn ∷ ( FileHandle handle, WriteModes ioMode+            , pr `AncestorRegion` cr, MonadIO cr+            )+          ⇒ handle ioMode pr → B.ByteString → cr () hPutStrLn = wrap2 E.hPutStrLn  
Data/ByteString/Lazy/Char8/SaferFileHandles.hs view
@@ -42,7 +42,7 @@     )  -- from safer-file-handles:-import System.IO.SaferFileHandles ( RegionalFileHandle , ReadModes, WriteModes )+import System.IO.SaferFileHandles ( FileHandle, ReadModes, WriteModes ) import System.IO.SaferFileHandles.Unsafe ( wrap, wrap2 )  @@ -51,24 +51,32 @@ -------------------------------------------------------------------------------  -- | Wraps: @Data.ByteString.'B.hGetContents'@.-hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-             ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetContents ∷ ( FileHandle handle, ReadModes ioMode+               , pr `AncestorRegion` cr, MonadIO cr+               )+             ⇒ handle ioMode pr → cr B.ByteString hGetContents = wrap E.hGetContents  -- | Wraps: @Data.ByteString.'B.hGet'@.-hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGet ∷ ( FileHandle handle, ReadModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → Int → cr B.ByteString hGet = wrap2 E.hGet  -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.-hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-                ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGetNonBlocking ∷ ( FileHandle handle, ReadModes ioMode+                  , pr `AncestorRegion` cr, MonadIO cr+                  )+                ⇒ handle ioMode pr → Int → cr B.ByteString hGetNonBlocking = wrap2 E.hGetNonBlocking   -- | Wraps: @Data.ByteString.'B.hPut'@.-hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPut ∷ ( FileHandle handle, WriteModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → B.ByteString → cr () hPut = wrap2 E.hPut  
Data/ByteString/Lazy/SaferFileHandles.hs view
@@ -46,10 +46,8 @@                                                            )  -- from safer-file-handles:-import System.IO.SaferFileHandles          ( RegionalFileHandle-                                           , ReadModes, WriteModes-                                           )-import System.IO.SaferFileHandles.Unsafe   ( wrap, wrap2 )+import System.IO.SaferFileHandles        ( FileHandle, ReadModes, WriteModes )+import System.IO.SaferFileHandles.Unsafe ( wrap, wrap2 )   -------------------------------------------------------------------------------@@ -57,29 +55,39 @@ -------------------------------------------------------------------------------  -- | Wraps: @Data.ByteString.'B.hGetContents'@.-hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-             ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetContents ∷ ( FileHandle handle, ReadModes ioMode+               , pr `AncestorRegion` cr, MonadIO cr+               )+             ⇒ handle ioMode pr → cr B.ByteString hGetContents = wrap E.hGetContents  -- | Wraps: @Data.ByteString.'B.hGet'@.-hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGet ∷ ( FileHandle handle, ReadModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → Int → cr B.ByteString hGet = wrap2 E.hGet  -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.-hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-                ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGetNonBlocking ∷ ( FileHandle handle, ReadModes ioMode+                  , pr `AncestorRegion` cr, MonadIO cr+                  )+                ⇒ handle ioMode pr → Int → cr B.ByteString hGetNonBlocking = wrap2 E.hGetNonBlocking   -- | Wraps: @Data.ByteString.'B.hPut'@.-hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPut ∷ ( FileHandle handle, WriteModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → B.ByteString → cr () hPut = wrap2 E.hPut  -- | Wraps: @Data.ByteString.'B.hPutStr'@.-hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-        ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPutStr ∷ ( FileHandle handle, WriteModes ioMode+          , pr `AncestorRegion` cr, MonadIO cr+          )+        ⇒ handle ioMode pr → B.ByteString → cr () hPutStr = wrap2 E.hPutStr  
Data/ByteString/SaferFileHandles.hs view
@@ -50,10 +50,8 @@                                                       )  -- from safer-file-handles:-import System.IO.SaferFileHandles          ( RegionalFileHandle-                                           , ReadModes, WriteModes-                                           )-import System.IO.SaferFileHandles.Unsafe   ( wrap, wrap2 )+import System.IO.SaferFileHandles        ( FileHandle, ReadModes, WriteModes )+import System.IO.SaferFileHandles.Unsafe ( wrap, wrap2 )   -------------------------------------------------------------------------------@@ -61,38 +59,52 @@ -------------------------------------------------------------------------------  -- | Wraps: @Data.ByteString.'B.hGetLine'@.-hGetLine ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-         ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetLine ∷ ( FileHandle handle, ReadModes ioMode+           , pr `AncestorRegion` cr, MonadIO cr+           )+         ⇒ handle ioMode pr → cr B.ByteString hGetLine = wrap E.hGetLine  -- | Wraps: @Data.ByteString.'B.hGetContents'@.-hGetContents ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-             ⇒ RegionalFileHandle ioMode pr → cr B.ByteString+hGetContents ∷ ( FileHandle handle, ReadModes ioMode+               , pr `AncestorRegion` cr, MonadIO cr+               )+             ⇒ handle ioMode pr → cr B.ByteString hGetContents = wrap E.hGetContents  -- | Wraps: @Data.ByteString.'B.hGet'@.-hGet ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGet ∷ ( FileHandle handle, ReadModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → Int → cr B.ByteString hGet = wrap2 E.hGet  -- | Wraps: @Data.ByteString.'B.hGetNonBlocking'@.-hGetNonBlocking ∷ (pr `AncestorRegion` cr, MonadIO cr, ReadModes ioMode)-                ⇒ RegionalFileHandle ioMode pr → Int → cr B.ByteString+hGetNonBlocking ∷ ( FileHandle handle, ReadModes ioMode+                  , pr `AncestorRegion` cr, MonadIO cr+                  )+                ⇒ handle ioMode pr → Int → cr B.ByteString hGetNonBlocking = wrap2 E.hGetNonBlocking  -- | Wraps: @Data.ByteString.'B.hPut'@.-hPut ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-     ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPut ∷ ( FileHandle handle, WriteModes ioMode+       , pr `AncestorRegion` cr, MonadIO cr+       )+     ⇒ handle ioMode pr → B.ByteString → cr () hPut = wrap2 E.hPut  -- | Wraps: @Data.ByteString.'B.hPutStr'@.-hPutStr ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-        ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPutStr ∷ ( FileHandle handle, WriteModes ioMode+          , pr `AncestorRegion` cr, MonadIO cr+          )+        ⇒ handle ioMode pr → B.ByteString → cr () hPutStr = wrap2 E.hPutStr  -- | Wraps: @Data.ByteString.'B.hPutStrLn'@.-hPutStrLn ∷ (pr `AncestorRegion` cr, MonadIO cr, WriteModes ioMode)-          ⇒ RegionalFileHandle ioMode pr → B.ByteString → cr ()+hPutStrLn ∷ ( FileHandle handle, WriteModes ioMode+            , pr `AncestorRegion` cr, MonadIO cr+            )+          ⇒ handle ioMode pr → B.ByteString → cr () hPutStrLn = wrap2 E.hPutStrLn  
safer-file-handles-bytestring.cabal view
@@ -1,5 +1,5 @@ name:          safer-file-handles-bytestring-version:       0.1.0.3+version:       0.2 cabal-version: >=1.6 build-type:    Simple license:       BSD3@@ -18,12 +18,12 @@  Library   GHC-Options: -Wall-  build-depends: base               	     >= 4   && < 4.4-               , bytestring         	     >= 0.9 && < 0.10-               , regions            	     >= 0.8 && < 0.9-               , transformers       	     >= 0.2 && < 0.3-               , explicit-iomodes-bytestring >= 0.1 && < 0.2-               , safer-file-handles          >= 0.9 && < 0.10+  build-depends: base               	     >= 4    && < 4.4+               , bytestring         	     >= 0.9  && < 0.10+               , regions            	     >= 0.9  && < 0.10+               , transformers       	     >= 0.2  && < 0.3+               , explicit-iomodes-bytestring >= 0.1  && < 0.2+               , safer-file-handles          >= 0.10 && < 0.11   exposed-modules: Data.ByteString.SaferFileHandles                    Data.ByteString.Char8.SaferFileHandles                    Data.ByteString.Lazy.SaferFileHandles