Bluefin is an effect system for Haskell which allows you, through value-level capabilities, 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.
Due to a bug in GHC 9.12.1 and 9.12.2, Bluefin performance suffers greatly on those compilers. The bug will be fixed in GHC 9.12.3 and 9.14.1. See https://github.com/tomjaguarpaw/bluefin/issues/77 for more details.
If you have a question about Bluefin, you think you might have found a bug, you're stuck on something, or you want to make contact for any other reason then either open an issue or start a discussion, whichever you prefer.
If you would like to add a new function to Bluefin, please prefer to
add it to the bluefin-contrib package, where all user contributions
will be accepted by default. If you think a function in
bluefin-contrib deserves to be exported from bluefin itself,
please open an issue.
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
Sjoerd Visscher, for his work on
effects
Haskell
100.0%
Bluefin is an effect system for Haskell which allows you, through value-level capabilities, 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.
Due to a bug in GHC 9.12.1 and 9.12.2, Bluefin performance suffers greatly on those compilers. The bug will be fixed in GHC 9.12.3 and 9.14.1. See https://github.com/tomjaguarpaw/bluefin/issues/77 for more details.
If you have a question about Bluefin, you think you might have found a bug, you're stuck on something, or you want to make contact for any other reason then either open an issue or start a discussion, whichever you prefer.
If you would like to add a new function to Bluefin, please prefer to
add it to the bluefin-contrib package, where all user contributions
will be accepted by default. If you think a function in
bluefin-contrib deserves to be exported from bluefin itself,
please open an issue.
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
Sjoerd Visscher, for his work on
effects
Haskell
100.0%