Is anyone using the effect system for ALL side-effects?

Just curious if this started to become idiomatic in the OCaml ecosystem, to use effects not only for parallelism and concurrency, but for all side-effects, like writing to std/out, database and file access, etc?

We use it on YOCaml: GitHub - xhtmlboi/yocaml: YOCaml is a static site generator, mostly written in OCaml

You can watch the Eff module here: yocaml/lib/core/eff.ml at main · xhtmlboi/yocaml · GitHub

But from my point of view, when I don’t care about continuation (or exception are sufficient to discard the execution) I relay on modules like here: GitHub - xvw/kohai: Kohai is a very simple (but opinionated) timetracker for my personal usage or objects (yeah, I love using OCaml OOP features for dependency injection)

1 Like

This is so above my head, sorry. :anxious_face_with_sweat:

See also this previous discussion: Curious about real-world uses of the effect system (other than threading) To summarize my response there, I find it useful for managing global mutable state in a functional style. I can’t imagine myself using it for all effectful code, though, at least not for the foreseeable future.

2 Likes