aboutsummaryrefslogtreecommitdiff
path: root/docs/EFFECTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/EFFECTS.md')
-rw-r--r--docs/EFFECTS.md15
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?