-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Generalized stream processors
--
-- A mutual generalization of pipes and machines; a library
-- for exploring a particular corner of the design space of streaming IO
-- (and other related tasks) in Haskell.
@package ChannelT
@version 0.0.0.4
module Control.Monad.Channel.Internal
newtype ChannelT sel m a
ChannelT :: FreeT (ChannelF sel) m a -> ChannelT sel m a
[unChannelT] :: ChannelT sel m a -> FreeT (ChannelF sel) m a
type Channel sel = ChannelT sel Identity
class Monad m => MonadChannel (sel :: * -> * -> *) (m :: * -> *) | m -> sel
syncOn :: MonadChannel sel m => sel i o -> o -> m i
data ChannelF (sel :: * -> * -> *) (x :: *)
SyncChannel :: sel i o -> o -> (i -> x) -> ChannelF
[selectorF] :: ChannelF -> sel i o
[outputF] :: ChannelF -> o
[inputF] :: ChannelF -> i -> x
instance GHC.Generics.Generic (Control.Monad.Channel.Internal.ChannelT sel m a)
instance GHC.Generics.Generic1 (Control.Monad.Channel.Internal.ChannelT sel m)
instance GHC.Base.Monad m => Control.Monad.Free.Class.MonadFree (Control.Monad.Channel.Internal.ChannelF sel) (Control.Monad.Channel.Internal.ChannelT sel m)
instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Channel.Internal.ChannelT sel)
instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Channel.Internal.ChannelT sel m)
instance GHC.Base.Monad m => GHC.Base.Applicative (Control.Monad.Channel.Internal.ChannelT sel m)
instance GHC.Base.Monad m => GHC.Base.Functor (Control.Monad.Channel.Internal.ChannelT sel m)
instance GHC.Generics.Generic (Control.Monad.Trans.Free.FreeT f m a)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Channel.Internal.ChannelT sel m)
instance GHC.Base.Functor (Control.Monad.Channel.Internal.ChannelF sel)
instance (Control.Monad.Base.MonadBase b m, GHC.Base.Functor f) => Control.Monad.Base.MonadBase b (Control.Monad.Trans.Free.FreeT f m)
instance GHC.Base.Functor f => Control.Monad.Morph.MFunctor (Control.Monad.Trans.Free.FreeT f)
instance GHC.Base.Monad m => Control.Monad.Channel.Internal.MonadChannel sel (Control.Monad.Channel.Internal.ChannelT sel m)
instance Control.Monad.Morph.MFunctor (Control.Monad.Channel.Internal.ChannelT sel)
module Control.Monad.Channel
type Channel sel = ChannelT sel Identity
data ChannelT sel m a
class Monad m => MonadChannel (sel :: * -> * -> *) (m :: * -> *) | m -> sel
syncOn :: MonadChannel sel m => sel i o -> o -> m i