packages feed

hw-polysemy-0.1.0.0: src/HaskellWorks/Polysemy/Either.hs

module HaskellWorks.Polysemy.Either
  ( onLeftThrow
  ) where

import           HaskellWorks.Polysemy.Prelude

import           Polysemy
import           Polysemy.Error

onLeftThrow :: ()
  => Member (Error e) r
  => Sem r (Either e a)
  -> Sem r a
onLeftThrow f =
  f >>= either throw pure