/fluoresce

Primary LanguageGleamMozilla Public License 2.0MPL-2.0

fluoresce

Package Version Hex Docs

An algebraic effects framework for Gleam, with classical-logic types. This is could also be seen as a library for the Continuation monad.

This is very Haskell-y, and is based directly on the paper "The Duality of Abstraction," currently marked as a draft by Vikraman Choudhury but which I think is part of POPL 2024. I intend to add more effects features based on the Doo-Bee-Doo-Bee-Doo paper by Conor McBride and others; we'll see how far I get.

This kind of library is not how Gleam does things, as a language. I wrote it for fun. You should be a pretty big fan of control effects before attempting to build a serious project with fluoresce!

gleam add fluoresce
import fluoresce

pub fn main() {
  // TODO: An example of the project in use
}

Further documentation can be found at https://hexdocs.pm/fluoresce.

Development

gleam run   # Run the project
gleam test  # Run the tests
gleam shell # Run an Erlang shell