React.Halo.Internal.Control
- Package
- purescript-react-halo
- Repository
- robertdp/purescript-react-halo
#HaloF Source
data HaloF :: Type -> Type -> Type -> (Type -> Type) -> Type -> Type
data HaloF props state action (m :: Type -> Type) a
The Halo evaluation algebra
props
are the component propsstate
is the component stateaction
is the set of actions that the component handlesm
is the monad used during evaluationa
is the result type
Constructors
Props (props -> a)
State (state -> Tuple a state)
Subscribe (SubscriptionId -> Emitter action) (SubscriptionId -> a)
Unsubscribe SubscriptionId a
Lift (m a)
Par (HaloAp props state action m a)
Fork (HaloM props state action m Unit) (ForkId -> a)
Kill ForkId a
Instances
#HaloM Source
newtype HaloM :: Type -> Type -> Type -> (Type -> Type) -> Type -> Type
newtype HaloM props state action (m :: Type -> Type) a
The Halo evaluation monad. It lifts the HaloF
algebra into a free monad.
props
are the component propsstate
is the component stateaction
is the set of actions that the component handlesm
is the monad used during evaluationa
is the result type
Constructors
Instances
Functor (HaloM props state action m)
Apply (HaloM props state action m)
Applicative (HaloM props state action m)
Bind (HaloM props state action m)
Monad (HaloM props state action m)
(Semigroup a) => Semigroup (HaloM props state action m a)
(Monoid a) => Monoid (HaloM props state action m a)
MonadTrans (HaloM props state action)
(MonadEffect m) => MonadEffect (HaloM props state action m)
(MonadAff m) => MonadAff (HaloM props state action m)
MonadState state (HaloM props state action m)
MonadRec (HaloM props state action m)
(MonadAsk r m) => MonadAsk r (HaloM props state action m)
(MonadTell w m) => MonadTell w (HaloM props state action m)
(MonadThrow e m) => MonadThrow e (HaloM props state action m)
Parallel (HaloAp props state action m) (HaloM props state action m)
#HaloAp Source
newtype HaloAp :: Type -> Type -> Type -> (Type -> Type) -> Type -> Type
newtype HaloAp props state action (m :: Type -> Type) a
The Halo parallel evaluation applicative. It lifts HaloM
into a free applicative.
props
are the component propsstate
is the component stateaction
is the set of actions that the component handlesm
is the monad used during evaluationa
is the result type
Constructors
Instances
#subscribe Source
subscribe :: forall props state action m. Emitter action -> HaloM props state action m SubscriptionId
Subscribe to new actions from an Emitter
. Subscriptions will be automatically cancelled when the component
unmounts.
Returns a SubscriptionId
which can be used with unsubscribe
to manually cancel a subscription.
#subscribe' Source
subscribe' :: forall props state action m. (SubscriptionId -> Emitter action) -> HaloM props state action m SubscriptionId
Same as subscribe
but the event-producing logic is also passed the SuscriptionId
. This is useful when events
need to unsubscribe themselves.
#unsubscribe Source
unsubscribe :: forall props state action m. SubscriptionId -> HaloM props state action m Unit
Cancels the event subscription belonging to the SubscriptionId
.
#fork Source
fork :: forall props state action m. HaloM props state action m Unit -> HaloM props state action m ForkId
Start a HaloM
process running independantly from the current "thread". Forks are tracked automatically and
killed when the Finalize
event occurs (when the component unmounts). New forks can still be created during the
Finalize
event, but once evaluation ends there will be no way of killing them.
Returns a ForkId
for the new process.