I'm curious, has anyone ever tried anything like this in a non-trivial Kotlin application?
I think that once multiple receivers come out, this technique will sort of be moot -- but for now it seems to me like a nice way of emulating them with just a single receiver parameter.
This reminds me a lot of "mtl-style" programming in Haskell.
https://gist.github.com/Sintrastes/dc09b2db881962767a160a3a9d484487