I have the feeling the crux of making “everything”
Expression is not so much that it’s an expression per se, but that these things are highly composable. For that they more or less automatically “expression-y”, or actually act like monads in some way.
Nevertheless, this is a good strategy! Also the fact that the basic building block (`Expression`) are backed by a typesystem which is reflective.