It's pretty straightforward to write some functions which use runExcept to execute an Except action and use ~?= to check its results.
shouldThrow :: Eq e => Except e a -> e -> Test
m `shouldThrow` e = runExcept m ~?= Left e
shouldReturn :: Eq a => Except e a -> a -> Test
m `shouldReturn` x = runExcept m ~?= Right x
It's pretty straightforward to write some functions which use
runExceptto execute anExceptaction and use~?=to check its results.Example usage: