packages feed

ribosome-0.4.0.0: lib/Ribosome/Control/Exception.hs

module Ribosome.Control.Exception where

import Control.Exception.Lifted (IOException, catch, try)

tryIO ::
  MonadBaseControl IO m =>
  m a ->
  m (Either IOException a)
tryIO =
  try

tryAny ::
  MonadBaseControl IO m =>
  m a ->
  m (Either SomeException a)
tryAny =
  try

catchAny ::
  MonadBaseControl IO m =>
  (SomeException -> m a) ->
  m a ->
  m a
catchAny =
  flip catch

catchAnyAs ::
  MonadBaseControl IO m =>
  a ->
  m a ->
  m a
catchAnyAs =
  catchAny . const . return