It's hard for me to tease apart the differences between Rye "first class context", deprecated JS "with" statement, Scala/Idris/Agda implicit arguments, and I guess also just effect systems generally?
it feels like there're all features for ergonomic dependency injection, but maybe that's a lot of programming