sessiontypes-distributed-0.1.1: Session types distributed

Safe HaskellNone




Provides instances for Session of IxMonadThrow, IxMonadCatch and IxMonadMask.

These instances should behave no differently from the corresponding MonadThrow, MonadCatch and MonadMask instances for Process. For more documentation please visit Control.Monad.Catch

The reason that the instances are placed in a separate module is to avoid a circular dependency of the modules.

The instances require evaluation of the sessions, therefore Control.Distributed.Session.Eval should be imported.

However that module imports Control.Distributed.Session.Session. Placing these instances in this module would then require importing Control.Distributed.Session.Eval causing a circular dependency.

Note that these instances are already exported by Control.Distributed.Session, such that this module should need no explicit import.


Orphan instances

IxMonadThrow (Cap *) Session s Source # 


throwM :: Exception e => e -> s s s a #

IxMonadCatch (Cap *) Session s Source # 


catch :: Exception e => s s s a -> (e -> s s s a) -> s s s a #

IxMonadMask (Cap *) Session s Source # 


mask :: ((s s s b -> s s s b) -> s s s b) -> s s s b #

uninterruptibleMask :: ((s s s b -> s s s b) -> s s s b) -> s s s b #