MIT License
Bluefin is an effect system for Haskell which allows you, through value-level handles, to freely mix a variety of effects including
Bluefin.EarlyReturn
, for early returnBluefin.Exception
, for exceptionsBluefin.IO
, for I/OBluefin.State
, for mutable stateBluefin.Stream
, for streamsFor an introduction to Bluefin, see the docs in the
Bluefin
module.
There is an bluefin-examples
package which you can see in this
repository at
bluefin-examples/src/Bluefin/Examples
.
Tom Ellis would like to thank many individuals for their work related to effect systems. Without the work of these individuals, Bluefin would not exist.
Oleg Kiselyov, particularly for his work on effects and delimited continuations
Michael Snoyman, particularly for his work on conduit and the
ReaderT
IO
pattern
Gabriella Gonzalez, particularly for her work on pipes
Alexis King, particularly for her work on effect systems and delimited continuations
David Feuer, particularly for his observation about handlers and rank-2 types
Andrzej Rybczak for his work on effectful
Francois Pottier for "Wandering through linear types, capabilities, and regions"
Jasper van de Jeugt, particularly for promoting the handle pattern
Michael Thompson, for his work on streaming
Ningning Xie and Daan Leijen, for their work on Koka
Andrej Bauer and Matija Pretnar, for their work on Eff