sessiontypes-distributed-0.1.0: Session types distributed

Safe HaskellNone
LanguageHaskell2010

Control.Distributed.Session.Exception

Contents

Description

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.

Documentation

Orphan instances

IxMonadThrow (Cap *) Session s Source # 

Methods

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

IxMonadCatch (Cap *) Session s Source # 

Methods

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

IxMonadMask (Cap *) Session s Source # 

Methods

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 #