The programming language that I will never get around to implement would have implicit parameters, that I think would subsume contexts, dynamic scoping and effects.
The real issue is figuring out a way to statically propagate implicits up without mandatory explicit annotations or whole program inference.
I believe the Scala creators invented implicits, as an alternative to type classes that fit more naturally with an OOP language. They were later shown to be equivalent to type classes.
The real issue is figuring out a way to statically propagate implicits up without mandatory explicit annotations or whole program inference.