module Prolude.ByteString
    ( module Data.ByteString
    , LazyByteString
    , putLazyByteString
    , writeByteStringToFile
    )
where

import Data.ByteString (ByteString)
import qualified Control.Monad.IO.Class as MonadIO
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import qualified System.IO as IO

type LazyByteString = LBS.ByteString

putLazyByteString :: MonadIO.MonadIO m => LazyByteString -> m ()
putLazyByteString :: LazyByteString -> m ()
putLazyByteString = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MonadIO.liftIO (IO () -> m ())
-> (LazyByteString -> IO ()) -> LazyByteString -> m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LazyByteString -> IO ()
LBS.putStr

writeByteStringToFile :: MonadIO.MonadIO m => IO.FilePath -> ByteString -> m ()
writeByteStringToFile :: FilePath -> ByteString -> m ()
writeByteStringToFile FilePath
path ByteString
bs = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MonadIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ FilePath -> ByteString -> IO ()
BS.writeFile FilePath
path ByteString
bs