polysemy-conc-0.14.1.1: Polysemy effects for concurrency
Safe HaskellNone
LanguageGHC2021

Polysemy.Conc.Effect.Critical

Description

 
Synopsis

Documentation

data Critical (a :: Type -> Type) b where Source #

An effect that catches exceptions.

Provides the exact functionality of fromExceptionSem, but pushes the dependency on Final IO to the interpreter, and makes it optional.

Constructors

Catch :: forall e (a :: Type -> Type) a1. Exception e => a a1 -> Critical a (Either e a1)

Catch all exceptions of type e in this computation.

catch :: forall (r :: EffectRow) e a. (Member Critical r, Exception e) => Sem r a -> Sem r (Either e a) Source #

Catch all exceptions of type e in this computation.

catchAs :: forall e a (r :: EffectRow). (Exception e, Member Critical r) => a -> Sem r a -> Sem r a Source #

Catch exceptions of type e and return a fallback value.

run :: forall (r :: EffectRow) a. Member Critical r => Sem r a -> Sem r (Either SomeException a) Source #

Convenience overload for SomeException.

runAs :: forall (r :: EffectRow) a. Member Critical r => a -> Sem r a -> Sem r a Source #

Convenience overload for SomeException.