What Nim calls the Table Constructor as dom96 has correctly pointed out, the
lisp world has long called "association lists", often abbreviated "alist".
Since it is a macro you are writing, you could check that the kind of the
NimNode is `nnkTableConstr` and if not emit a useful compile-time message for
client code, as in something approximately like:
import macros
macro `@@@`(x: untyped): untyped =
if x.kind != nnkTableConstr:
error "triple-@ expects a {(,),(,)..} table constructor"
var a = @@@{"fromStruct": "blah", "sub": {"joe": 10}}
#var b = @@@[1,2,3] #Errors out with above message.
Run