print -rl "${(@k)aliases}}" Shouldn't the parser complain about the extra '}'? OTOH I can see that in a 'left to right' style of parsing, their's little? chance of actual confusion so perhaps as a matter of policy it's decided to let it slide. It certainly complains about too many opening '{', tho.