マクロの質問なのですが.

(defvar *test*
'(("aaa" . "bbb")
("ccc" . "ddd")))

(defmacro build-toolbar (val)
`(progn
,@(loop for i in val collect
`(print ,(car i)))))

こういうマクロを書いて

(progn
(print "aaa")
(print "ccc"))

こうなることを期待したのですが.

(build-toolbar *test*)
とやると,The value *TEST* is not of type LIST.
と出てしまいます.
どうすればよいのでしょうか?.
ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.