packages feed

hpaste-1.2.0: src/Data/Either/Extra.hs

{-# OPTIONS -Wall #-}
{-# LANGUAGE OverloadedStrings #-}

module Data.Either.Extra where

-- | When a value is Right, do something with it, monadically.
whenRight :: Monad m => Either a b -> (b -> m c) -> m ()
whenRight (Right x) m = m x >> return ()
whenRight _         _ = return ()

-- | When a value is Left, do something with it, monadically.
whenLeft :: Monad m => Either a b -> (a -> m c) -> m ()
whenLeft (Left x) m = m x >> return ()
whenLeft _         _ = return ()