Essentially the Maybe type with error messages.
This is a very simple type:
data Exceptional x
= Failure String
| Success x
It's much like Maybe
, except instead of Nothing
, we have Failure String
.
A comparison could also be made to Either String
. I made this library because I was dissatisfied with the Monad
instance for Either
. In this type, fail = Failure
. It's rather simple.
Changes
- 0.3.0.0
Fix erroneous behavior in
foldExceptional
function added in version 0.2. This release actually does break (or rather fix) thefoldExceptional
function, so be careful.- 0.2.0.0
Add
exceptional
function to encapsulate ordinary exceptions in theExceptional
monad. Add folding functions.
This release does not actually break the API, however I was rather tired when I chose the version number. This should be 0.1.6.
- 0.1.5.0
Add
exceptIO
function to encapsulate IO errors in theExceptional
monad.- 0.1.4.3
Fix bug where
exceptional
won't compile onbase < 4.8
. Also move the changelog back to the description so it's more visible.- 0.1.4.2
Moved change log to a separate file so Hackage displays it correctly.
- 0.1.4.1
Documentation enhancements/fixes.
- 0.1.4.0
Added
fromMaybe
andtoMaybe
functions, and a link to the bug tracker.- 0.1.3.0
Fixed a typo. 0.1.2.0 won't build. Also added definition of
empty
forAlternative
.- 0.1.2.0
Added
fromEither
andtoEither
functions.- 0.1.1.3
Hackage is terrible. Yet another formatting fix.
- 0.1.1.2
Yet another formatting fix.
- 0.1.1.1
Formatting fix to the haddock documentation.
- 0.1.1.0
Add
runExceptional
function.- 0.1.0.1
Minor documentation changes. No changes to the API.
- 0.1.0.0
Initial version
exceptional
This is a Haskell library that exists to house a type:
data Exceptional x
= Failure String
| Success x
It's much like Maybe
, except instead of Nothing
, we have Failure String
.
A comparison could also be made to Either String
. I made this library because I was dissatisfied with the Monad
instance for Either
. In this type, fail = Failure
. It's rather simple.
Installing
cabal install exceptional
Or, add exceptional
to the build-depends
field in your .cabal
file.