Emacs' implementation of cl-loop includes support for the for-as-hash part of Common Lisp's loop grammar.

The grammar:

for-as-hash::= var [type-spec] being {each | the}  
               {{hash-key | hash-keys} {in | of} hash-table  
                [using (hash-value other-var)] |  
                {hash-value | hash-values} {in | of} hash-table  
                [using (hash-key other-var)]}

Example usage:

(loop for key being the hash-keys of #s(hash-table data (1 2 3 4))
      do (message "key: %s" key))

However, the docstring for cl-loop does not mention this syntax. I believe it should.

Thanks
Wilfred