extensible-effects-concurrent-0.1.2.2: Message passing concurrency as extensible-effect

Safe HaskellNone
LanguageHaskell2010

Control.Eff.Concurrent.GenServer

Description

Type safe server API processes

Synopsis

Documentation

data family Api (genServerModule :: Type) (replyType :: Synchronicity) Source #

This data family defines an API implemented by a server. The first parameter is the API index and the second parameter (the * -> *)

data ApiHandler p r e Source #

Constructors

ApiHandler ((Typeable p, Typeable (Api p Asynchronous), HasCallStack) => Api p Asynchronous -> Eff r e) (forall x. (Typeable p, Typeable (Api p (Synchronous x)), Typeable x, HasCallStack) => Api p (Synchronous x) -> (x -> Eff r Bool) -> Eff r e) ((Typeable p, HasCallStack) => String -> Eff r ()) 

newtype Server genServerModule Source #

Constructors

Server 

Instances

Eq (Server genServerModule) Source # 

Methods

(==) :: Server genServerModule -> Server genServerModule -> Bool #

(/=) :: Server genServerModule -> Server genServerModule -> Bool #

Ord (Server genServerModule) Source # 

Methods

compare :: Server genServerModule -> Server genServerModule -> Ordering #

(<) :: Server genServerModule -> Server genServerModule -> Bool #

(<=) :: Server genServerModule -> Server genServerModule -> Bool #

(>) :: Server genServerModule -> Server genServerModule -> Bool #

(>=) :: Server genServerModule -> Server genServerModule -> Bool #

max :: Server genServerModule -> Server genServerModule -> Server genServerModule #

min :: Server genServerModule -> Server genServerModule -> Server genServerModule #

Read (Server genServerModule) Source # 

Methods

readsPrec :: Int -> ReadS (Server genServerModule) #

readList :: ReadS [Server genServerModule] #

readPrec :: ReadPrec (Server genServerModule) #

readListPrec :: ReadPrec [Server genServerModule] #

Typeable * genServerModule => Show (Server genServerModule) Source # 

Methods

showsPrec :: Int -> Server genServerModule -> ShowS #

show :: Server genServerModule -> String #

showList :: [Server genServerModule] -> ShowS #

fromServer :: forall genServerModule genServerModule. Iso (Server genServerModule) (Server genServerModule) ProcessId ProcessId Source #

proxyAsServer :: proxy genServerModule -> ProcessId -> Server genServerModule Source #

asServer :: forall genServerModule. ProcessId -> Server genServerModule Source #

call :: forall result genServerModule r. (Member MessagePassing r, Member Process r, Typeable genServerModule, Typeable (Api genServerModule (Synchronous result)), Typeable result, HasCallStack) => Server genServerModule -> Api genServerModule (Synchronous result) -> Eff r (Message result) Source #

serve :: forall r p e. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r e -> Eff r (Message e) Source #

serve_ :: forall r p. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r () -> Eff r () Source #