📝Co-effects
Co-effects capture the context of execution in the type system and allow caller functions to supply it.
If § Effect system allow caller to specify how certain actions are executed (e.g., logging, http requests, database requests, etc.), co-effects allow caller to specify data to use.
If § Effect system is similar to Monads, co-effects are similar to Comonads.
See also
Resources
Coeffects: Context-aware programming languages
The “implicit parameters” language implements Dynamic scoping in a type-safe way