diff options
Diffstat (limited to 'docs/EFFECTS.md')
-rw-r--r-- | docs/EFFECTS.md | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/EFFECTS.md b/docs/EFFECTS.md new file mode 100644 index 0000000..aef1a6c --- /dev/null +++ b/docs/EFFECTS.md @@ -0,0 +1,15 @@ +# Effects + +I don't know enough about effects to get started with this section. + +Existing systems to learn from: +- https://koka-lang.github.io/koka/doc/index.html +- https://effekt-lang.org/ +- https://github.com/zesterer/tao +- https://v2.ocaml.org/manual/effects.html +- https://www.stephendiehl.com/posts/exotic03.html +- https://github.com/ocaml-multicore/ocaml-effects-tutorial +- https://blog.poisson.chat/posts/2023-01-02-del-cont-examples.html +- https://arxiv.org/abs/1807.05923 + +Effects are common "impure" operations that disrupt the regular flow of a language / function. Things like exceptions, async, & IO and "handlers" for such can all be captured into an effects system. Effect systems are in an active state of development: by far their hardest problem is *syntactic*, however. How much information is okay to expose to the user? How much is helpful? |