{-# LANGUAGE DataKinds #-}

module Chiasma.Data.Conduit where

import Conduit (ConduitT, Flush)
import Data.Conduit.Binary (sinkHandleFlush)
import Data.Conduit.Process.Typed (StreamSpec, StreamType(STInput), createPipe)

createSinkFlush :: MonadIO m => StreamSpec 'STInput (ConduitT (Flush ByteString) o m ())
createSinkFlush :: StreamSpec 'STInput (ConduitT (Flush ByteString) o m ())
createSinkFlush = Handle -> ConduitT (Flush ByteString) o m ()
forall (m :: * -> *) o.
MonadIO m =>
Handle -> ConduitM (Flush ByteString) o m ()
sinkHandleFlush (Handle -> ConduitT (Flush ByteString) o m ())
-> StreamSpec 'STInput Handle
-> StreamSpec 'STInput (ConduitT (Flush ByteString) o m ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> StreamSpec 'STInput Handle
forall (anyStreamType :: StreamType).
StreamSpec anyStreamType Handle
createPipe