haskell-halogen-core
Safe HaskellNone
LanguageGHC2021

Halogen.Subscription

Synopsis

Documentation

data Subscribe (m :: Type -> Type) a Source #

A paired Listener and Emitter produced with the create function.

Constructors

Subscribe 

Fields

create :: (MonadIO m, MonadUUID m) => m (Subscribe m a) Source #

newtype Emitter (m :: Type -> Type) a Source #

Constructors

Emitter 

Fields

Instances

Instances details
MonadIO m => Alternative (Emitter m) Source # 
Instance details

Defined in Halogen.Subscription

Methods

empty :: Emitter m a #

(<|>) :: Emitter m a -> Emitter m a -> Emitter m a #

some :: Emitter m a -> Emitter m [a] #

many :: Emitter m a -> Emitter m [a] #

MonadIO m => Applicative (Emitter m) Source # 
Instance details

Defined in Halogen.Subscription

Methods

pure :: a -> Emitter m a #

(<*>) :: Emitter m (a -> b) -> Emitter m a -> Emitter m b #

liftA2 :: (a -> b -> c) -> Emitter m a -> Emitter m b -> Emitter m c #

(*>) :: Emitter m a -> Emitter m b -> Emitter m b #

(<*) :: Emitter m a -> Emitter m b -> Emitter m a #

Functor (Emitter m) Source # 
Instance details

Defined in Halogen.Subscription

Methods

fmap :: (a -> b) -> Emitter m a -> Emitter m b #

(<$) :: a -> Emitter m b -> Emitter m a #

hoistEmitter :: forall (m :: Type -> Type) a. MonadUnliftIO m => Emitter IO a -> Emitter m a Source #

makeEmitter :: Functor m => ((a -> m ()) -> m (m ())) -> Emitter m a Source #

newtype Listener (m :: Type -> Type) a Source #

Constructors

Listener 

Fields

Instances

Instances details
Contravariant (Listener m) Source # 
Instance details

Defined in Halogen.Subscription

Methods

contramap :: (a' -> a) -> Listener m a -> Listener m a' #

(>$) :: b -> Listener m b -> Listener m a #

notify :: Listener m a -> a -> m () Source #

newtype Subscription (m :: Type -> Type) Source #

Constructors

Subscription 

Fields

hoistSubscription :: forall (m :: Type -> Type) (n :: Type -> Type). (m ~> n) -> Subscription m -> Subscription n Source #

subscribe :: Functor m => Emitter m a -> (a -> m r) -> m (Subscription m) Source #

fold :: forall (m :: Type -> Type) a b. MonadIO m => (a -> b -> b) -> Emitter m a -> b -> Emitter m b Source #

filter :: forall (m :: Type -> Type) a. Applicative m => (a -> Bool) -> Emitter m a -> Emitter m a Source #