packages feed

hw-polysemy-0.2.0.0: core/HaskellWorks/Polysemy/Data/Either.hs

module HaskellWorks.Polysemy.Data.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