IMO, unary operators are often best replaced by explicit names.
For eg: %* in https://nim-lang.github.io/Nim/json.html#%25%2A.m%2Cuntyped would be best replaced by toJson (and %* could become a deprecated alias to it):
macro `%*`(x: untyped): untyped
Nim is not perl, the goal is not to minimize the number of characters we type at the expense of clarity (at least, minimizing the number of tokens we type is a better metric than minimizing the number of characters).
%* seems like a perfect example of operator abuse.
I don't mind toJson but the reasoning was that JSON is more common these days in ordinary programming than e.g. a "modulo division" is. Common operations deserve an operator symbol -- whether these operations came from math or not.
"Tradition is the transmission of the fire and not the worship of the ashes."