Essentially the Maybe type with error messages.
This is a very simple type:
data Exceptional x
= Failure String
| Success xIt'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
foldExceptionalfunction added in version 0.2. This release actually does break (or rather fix) thefoldExceptionalfunction, so be careful.- 0.2.0.0
Add
exceptionalfunction to encapsulate ordinary exceptions in theExceptionalmonad. 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
exceptIOfunction to encapsulate IO errors in theExceptionalmonad.- 0.1.4.3
Fix bug where
exceptionalwon'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
fromMaybeandtoMaybefunctions, 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
emptyforAlternative.- 0.1.2.0
Added
fromEitherandtoEitherfunctions.- 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
runExceptionalfunction.- 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.