Dependency injection

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