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

Reply via email to