Skip to content
Algebraic effects and handlers using generators
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
packages/core
.flowconfig
.gitignore
.importjs.js
.travis.yml
README.md
lerna.json
package-lock.json
package.json
renovate.json

README.md

Composable effects

This is an experiment with composable effects and effectful programs. It's basically algebraic effects and handlers, using generators as the underlying implementation of continuations.

Try it

node -r @babel/register ./examples/delay

node -r @babel/register ./examples/async-problem/index ./examples/async-problem/input

Check out more examples

Highlights

  • Separation of effect interfaces and implementations: program with interfaces, supply effect implementations when running programs.
  • Composable effects: create new effects from existing ones.
  • Composable programs: yield * can be used to compose effectful programs.
  • Asynchronous effects with cancelation.

Inspiration

You can’t perform that action at this time.