Thanks, that is a good hint. I will try using the AST.
And you are right, the pipe version does not read too bad.
Also, I found after trying around and looking in the Kernel source, that when overwriting the Kernel definitions like def left + right, do: Decimal.add(left, right), instead of defining a macro, just works and does not fail when the application runs.
For reference: the updated gist.


















