I’m still not totally sure whether this trick is a good idea – it might be considered to be “complecting” functions and data in a way that is unidiomatic.

Nevertheless I decided to try implementing this in Clisk and is certainly makes the DSL more expressive – now you can use any Clisk object as a function, and compose them as needed to transform other functions.