Module

Transit.HandlerLookup

Package
purescript-transit
Repository
m-bock/purescript-transit

#HandlerLookup Source

newtype HandlerLookup :: (Type -> Type) -> Row Type -> Row Type -> Typenewtype HandlerLookup m (rowState :: Row Type) (rowMsg :: Row Type)

#HandlerLookupBuilder Source

newtype HandlerLookupBuilder :: (Type -> Type) -> Row Type -> Row Type -> Typenewtype HandlerLookupBuilder m (rowState :: Row Type) (rowMsg :: Row Type)

#RunI Source

type RunI :: forall k. (k -> Type) -> (k -> k) -> Typetype RunI m may = { no :: forall a. m (may a), yes :: forall a. m a -> m (may a) }

#addHandler Source

addHandler :: forall @symStaIn @symMsgIn m staIn msgIn rowStateOut rowMsg rowState trashState trashMsg trashUnion. IsSymbol symStaIn => IsSymbol symMsgIn => Cons symStaIn staIn trashState rowState => Cons symMsgIn msgIn trashMsg rowMsg => Union rowStateOut trashUnion rowState => (staIn -> msgIn -> m (Variant rowStateOut)) -> HandlerLookupBuilder m rowState rowMsg -> HandlerLookupBuilder m rowState rowMsg

#build Source

build :: forall m rowState rowMsg. Applicative m => HandlerLookupBuilder m rowState rowMsg -> HandlerLookup m rowState rowMsg

#initBuilder Source

initBuilder :: forall @rowState @rowMsg m. HandlerLookupBuilder m rowState rowMsg

#runI Source

runI :: forall m may. Applicative m => Alternative may => RunI m may

#runImpl Source

runImpl :: forall m may rowState rowMsg. Fn4 (RunI m may) (HandlerLookup m rowState rowMsg) (Variant rowState) (Variant rowMsg) (m (may (Variant rowState)))