Extensible optionally-pure exceptions http://github.com/ekmett/exceptions/

Version on this page:0.8.3
LTS Haskell 9.9:0.8.3
Stackage Nightly 2017-10-20:0.8.3
Latest on Hackage:0.8.3
BSD3 licensed by Edward A. Kmett
Maintained by Edward A. Kmett

Module documentation for 0.8.3


Hackage Build Status

This package provides (optionally pure) extensible exceptions that are compatible with the monad transformer library.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.

-Edward Kmett



  • MonadCatch and MonadMask instances for Either SomeException


  • Support for throwing in the template-haskell Q monad
  • Support for transformers 0.5

  • Resolved warnings on GHC 7.10 and with transformers 0.4.


  • Use transformers-compat to allow support for ExceptT even on older transformers versions.


  • stm support


  • Split out MonadMask
  • Added transformers 0.4 support


  • Added instances of MonadThrow for ListT, MaybeT, ErrorT and ContT.


  • Factored out a separate MonadThrow.

  • QuickCheck dependency bump


  • Relicensed under the 3-clause BSD license.


  • Better documentation for CatchT.
  • Added handle-like analogues for parity with Control.Exception.


  • Fixed test suite.


  • Moved CatchT to Control.Monad.Catch.Pure to make it clear it isn't required for working with IO.


  • Added mask_ and uninterruptibleMask_ to Control.Monad.Catch.


  • Added uninterruptibleMask to MonadCatch.


  • Flagged Control.Monad.Catch as Trustworthy

  • License fix. We were accidentally listing both an APL and BSD3 license in the same module


  • Repository initialized
Used by 464 packages:
accelerate, accelerate-llvm, activehs, aeson-compat, aeson-extra, airbrake, aivika-distributed, alga, amazonka, amazonka-core, amazonka-s3-streaming, amby, amqp-conduit, amqp-worker, analyze, anki-tools, antigate, apiary, apis, async-dejafu, aur-api, aws-ec2, aws-lambda, aws-mfa-credentials, bet, bimap, biohazard, bitx-bitcoin, bloodhound, bloodhound-amazonka-auth, b-tree, buildbox, byline, cabal-debian, cacophony, canteven-http, caramia, cassy, cayley-client, cgi, classy-prelude, cli-builder, clingo, cloud-seeder, coinbase-exchange, colorless, composite-base, concurrency, concurrent-output, concurrent-state, conduit, conduit-extra, conduit-find, consul-haskell, consumers, couch-simple, countable-inflections, cql-io, craft, creatur, credentials, credentials-cli, criterion, cryptocompare, cryptoids, crypto-rng, cue-sheet, datalog, datarobot, DAV, d-bus, debian, deiko-config, dejafu, delay, dhall, diagrams-builder, diagrams-lib, dictionaries, DigitalOcean, distributed-process, distributed-process-async, distributed-process-client-server, distributed-process-extras, distributed-process-fsm, docker, dotenv, dynamodb-simple, either, email-header, enumerate-function, eprocess, errors, etc, ether, ethereum-analyzer-cli, ethereum-analyzer-webui, eventstore, exceptional, ex-pool, ffmpeg-light, filecache, final-pretty-printer, find-conduit, flac, flowdock-rest, fluid-idl, follow-file, fraxl, free, ftp-client, ftp-client-conduit, gdax, gf, ghc-imported-from, ghc-mtl, ghc-session, git-annex, git-fmt, github, github-backup, github-tools, gitlib, gitlib-cmdline, gitlib-libgit2, gitlib-s3, gitlib-sample, gitlib-test, git-repair, gitter, gnss-converters, gogol, gogol-core, gore-and-ash, gore-and-ash-actor, gore-and-ash-async, gore-and-ash-demo, gore-and-ash-glfw, gore-and-ash-lambdacube, gore-and-ash-logging, gore-and-ash-network, gore-and-ash-sdl, gore-and-ash-sync, graphql-api, grenade, hackage-mirror, haddocset, hadoop-rpc, hadoop-tools, hailgun, hails, halma-telegram-bot, hamtsolo, happstack-server, hascar, haskell-awk, haskey, haskey-mtl, haskoin-node, haskoin-wallet, haste-app, hastily, haxl, hedgehog, hen, hesh, heyefi, hfmt, hierarchy, higher-leveldb, hindent, hint, hinterface, hint-server, hipbot, hoauth2, hoe, hpath, hpio, hpqtypes, hpqtypes-extras, hreader, hscaffold, hscurses, hsdev, hslua, hsoz, hsqml-datamodel-vinyl, hs-scrape, http-client, http-client-request-modifiers, http-client-tls, http-conduit, http-conduit-browser, http-listen, http-pony, hunit-dejafu, hw-kafka-conduit, hyper-haskell-server, hyperion, hzulip, imagesize-conduit, imap, inflections, inline-r, interlude-l, introduction, irc-client, iteratee, jupyter, jvm, karps, katip-elasticsearch, kawhi, kcd, kevin, keysafe, kontra-config, krapsh, lambdacube-compiler, lambdacube-gl, lambdatwit, lame, language-puppet, legion, lens, leveldb-haskell, liblawless, libmolude, lifted-protolude, linden, linklater, liquidhaskell, listsafe, llvm-hs, lmonad, lock-file, log-base, logging-effect, log-utils, log-warper, ltext, lxd-client, machines-amazonka, mailgun, mallard, marmalade-upload, matrix-market-attoparsec, mellon-web, MicrosoftTranslator, mida, minio-hs, modulespection, monad-batcher, monad-connect, monadcryptorandom, monad-hash, monad-http, monad-log, monad-logger, monad-logger-prefix, monad-mock, monad-open, monad-persist, monad-recorder, monad-ste, monad-timing, monad-unlift-ref, msgpack-rpc, nagios-check, nested-routes, netease-fm, network-anonymous-i2p, network-anonymous-tor, network-attoparsec, network-msgpack-rpc, Network-NineP, network-simple, network-simple-sockaddr, network-simple-tls, network-transport-amqp, network-transport-zeromq, Nomyx, nomyx-core, Nomyx-Core, nomyx-server, ntrip-client, nvim-hs, nvim-hs-contrib, oauthenticated, objective, oidc-client, omnifmt, orgstat, osm-conduit, pagerduty, pagination, path, path-extra, path-io, pdf-slave, persistent, pg-transact, pipes, pipes-files, pipes-kafka, pipes-p2p, pipes-postgresql-simple, pipes-protolude, pipes-safe, plan-b, playlists-http, pong-server, pontarius-xmpp, postgresql-connector, postgresql-query, postgresql-simple-bind, postgresql-simple-queue, postgresql-typed-lifted, preamble, propellor, pushover, qed, quiver-instances, quiver-sort, quoridor-hs, reactivity, read-env-var, redis, redis-io, reedsolomon, refresht, remote-json, replicant, repl-toolkit, resourcet, respond, rest-client, retry, riak, ring-buffer, rlglue, robot, safe-exceptions, sandi, Saturnin, SciFlow, sdl2, second-transfer, selda, selda-postgresql, selda-sqlite, sendgrid-haskell, seqaid, serokell-util, servant-auth-cookie, servant-auth-hmac, servant-auth-token-leveldb, servant-auth-token-rocksdb, servant-client, servant-haxl-client, servant-server, servant-websockets, sessiontypes-distributed, shakespeare, shelduck, shelly, simple-conduit, simple-effects, simple-log, simple-logging, sitepipe, slug, smerdyakov, soap, sparse-linear-algebra, sql-simple, sqsd-local, stack, stackage2nix, stackage-build-plan, stackage-cabal, stackage-cli, stackage-curator, stackage-types, stream, streaming, streaming-bytestring, streaming-concurrency, streaming-png, streaming-postgresql-simple, streaming-with, strict-data, supervisor, swagger-petstore, sync-mht, syncthing-hs, tagged-exception-core, tagged-transformer, target, teardown, temporary, temporary-rc, temporary-resourcet, tensorflow, tensorflow-logging, tensorflow-records-conduit, threepenny-gui, timeout, time-out, time-warp, tkyprof, tpar, traildb, twfy-api-client, twilio, twitter-conduit, typed-process, universum, Unixutils, urlpath, utc, uuid-crypto, validationt, wai-middleware-auth, wai-middleware-content-type, wai-middleware-verbs, wai-transformers, warc, webapi, webcrank, webcrank-wai, webdriver, webdriver-snoy, web-push, web-routes, websockets-rpc, websockets-simple, wolf, Workflow, workflow-extra, workflow-osx, workflow-pure, workflow-types, wrecker, wreq, wreq-sb, write-buffer-core, wsdl, xlsior, xml-conduit-parse, xournal-parser, yandex-translate, yesod-auth-basic, yesod-core, yesod-platform, yesod-static, yet-another-logger, yql, yxdb-utils, zeromq4-haskell, zifter, zip, zip-stream
comments powered byDisqus