{-# LANGUAGE NoImplicitPrelude #-}

-- | This module provides a first-class version
-- of the "Data.ByteString.Lazy" module.
module ModularPrelude.Module.LByteString
  ( -- * Module interface
    LByteStringModule (..)
    -- * Module contents
  , LByteStringImplements (..)
  ) where


import ModularPrelude hiding (empty)
import qualified Data.ByteString.Lazy as LByteString
import qualified Filesystem.Path.CurrentOS as FilePath


data LByteStringModule = LByteString
  { LByteStringModule -> (Word8 -> Word8) -> LByteString -> LByteString
map       :: (Word8 -> Word8) -> LByteString -> LByteString
  , LByteStringModule
-> (Word8 -> LByteString) -> LByteString -> LByteString
concatMap :: (Word8 -> LByteString) -> LByteString -> LByteString
  , LByteStringModule -> (Word8 -> Bool) -> LByteString -> LByteString
filter    :: (Word8 -> Bool) -> LByteString -> LByteString
  , LByteStringModule -> LByteString -> Int64
length    :: LByteString -> Int64
  , LByteStringModule -> Word8 -> LByteString
singleton :: Word8 -> LByteString
  , LByteStringModule -> LByteString -> Bool
null      :: LByteString -> Bool
  , LByteStringModule -> [Word8] -> LByteString
pack      :: [Word8] -> LByteString
  , LByteStringModule -> LByteString -> [Word8]
unpack    :: LByteString -> [Word8]
  , LByteStringModule -> LByteString
empty     :: LByteString
  , LByteStringModule -> FilePath -> IO LByteString
readFile  :: FilePath -> IO LByteString
  , LByteStringModule -> FilePath -> LByteString -> IO ()
writeFile :: FilePath -> LByteString -> IO ()
  , LByteStringModule
-> (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
break     :: (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
  , LByteStringModule
-> (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
span      :: (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
  , LByteStringModule -> (Word8 -> Bool) -> LByteString -> LByteString
dropWhile :: (Word8 -> Bool) -> LByteString -> LByteString
  , LByteStringModule -> (Word8 -> Bool) -> LByteString -> LByteString
takeWhile :: (Word8 -> Bool) -> LByteString -> LByteString
  , LByteStringModule -> (Word8 -> Bool) -> LByteString -> Bool
any       :: (Word8 -> Bool) -> LByteString -> Bool
  , LByteStringModule -> (Word8 -> Bool) -> LByteString -> Bool
all       :: (Word8 -> Bool) -> LByteString -> Bool
  , LByteStringModule
-> Int64 -> LByteString -> (LByteString, LByteString)
splitAt   :: Int64 -> LByteString -> (LByteString, LByteString)
  }


class LByteStringImplements interface where
  _Data_ByteString_Lazy_ :: interface

instance LByteStringImplements LByteStringModule where
  _Data_ByteString_Lazy_ :: LByteStringModule
_Data_ByteString_Lazy_ = LByteString
    { map :: (Word8 -> Word8) -> LByteString -> LByteString
map       = (Word8 -> Word8) -> LByteString -> LByteString
LByteString.map
    , concatMap :: (Word8 -> LByteString) -> LByteString -> LByteString
concatMap = (Word8 -> LByteString) -> LByteString -> LByteString
LByteString.concatMap
    , filter :: (Word8 -> Bool) -> LByteString -> LByteString
filter    = (Word8 -> Bool) -> LByteString -> LByteString
LByteString.filter
    , length :: LByteString -> Int64
length    = LByteString -> Int64
LByteString.length
    , singleton :: Word8 -> LByteString
singleton = Word8 -> LByteString
LByteString.singleton
    , null :: LByteString -> Bool
null      = LByteString -> Bool
LByteString.null
    , pack :: [Word8] -> LByteString
pack      = [Word8] -> LByteString
LByteString.pack
    , unpack :: LByteString -> [Word8]
unpack    = LByteString -> [Word8]
LByteString.unpack
    , empty :: LByteString
empty     = LByteString
LByteString.empty
    , readFile :: FilePath -> IO LByteString
readFile  = FilePath -> IO LByteString
LByteString.readFile (FilePath -> IO LByteString)
-> (FilePath -> FilePath) -> FilePath -> IO LByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. FilePath -> FilePath
FilePath.encodeString
    , writeFile :: FilePath -> LByteString -> IO ()
writeFile = FilePath -> LByteString -> IO ()
LByteString.writeFile (FilePath -> LByteString -> IO ())
-> (FilePath -> FilePath) -> FilePath -> LByteString -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. FilePath -> FilePath
FilePath.encodeString
    , break :: (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
break     = (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
LByteString.break
    , span :: (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
span      = (Word8 -> Bool) -> LByteString -> (LByteString, LByteString)
LByteString.span
    , dropWhile :: (Word8 -> Bool) -> LByteString -> LByteString
dropWhile = (Word8 -> Bool) -> LByteString -> LByteString
LByteString.dropWhile
    , takeWhile :: (Word8 -> Bool) -> LByteString -> LByteString
takeWhile = (Word8 -> Bool) -> LByteString -> LByteString
LByteString.takeWhile
    , any :: (Word8 -> Bool) -> LByteString -> Bool
any       = (Word8 -> Bool) -> LByteString -> Bool
LByteString.any
    , all :: (Word8 -> Bool) -> LByteString -> Bool
all       = (Word8 -> Bool) -> LByteString -> Bool
LByteString.all
    , splitAt :: Int64 -> LByteString -> (LByteString, LByteString)
splitAt   = Int64 -> LByteString -> (LByteString, LByteString)
LByteString.splitAt
    }


instance Default LByteStringModule where
  def :: LByteStringModule
def = LByteStringModule
forall interface. LByteStringImplements interface => interface
_Data_ByteString_Lazy_