First Class Contexts – Rye Language
ryelang.org
ryelang.org
it feels like there're all features for ergonomic dependency injection, but maybe that's a lot of programming
See SICP 4.1 definition of "eval", this is more like reifying "env" to the function being evaluated.
Effect systems can change control flow (that's the point of many effects, such as exceptions) so they require capturing continuations.
Implicit arguments usually have compile-time search / composition.
Rye contexts seems like they have neither of the above, but I've only skimmed through the description.
One of my favorite compositional patterns! I wish we saw this .ore, not just in contexts but everywhere.
It's something I saw Ansible inventories do that I absolutely loved. Point at an inventory, and Ansible will run it & use the output as inventory, or will otherwise use the contents.
I wish more languages had stuff like this. I just skeeted today that JS should have an optional function invocation syntax. myVar.??(). Run myVar if it's a function else use its value.
A nullary function is a different type from its return type, and should better be handled as such.