(setq allList '(("a" . ("a1" "a2" "a3")) ("b" . ("b1" "b2" "b3")) ("c" . ("c1" "c2" "c3"))))

上のような連想リストallListのなかの、"b"に対応する配列を差し替えたいのですが、
以下の(1)のように直書きするとうまく行くのですが、(2)のように(setf (nth 1 allList) '("b" . bList));と実行すると、
(3)以降を実行するのに、Wrong type argument: sequencep, bListとエラーが出ます。
どのように記述すればできますか?

(setf (nth 1 allList) '("b" . ("b01" "b02" "b03" "b04")));;(1)OK
(setq bList '("b01" "b02" "b03" "b04"))
(setf (nth 1 allList) '("b" . bList));;(2)NG

(setq myList (cdr (assoc "b" allList)));;(3)bの内容の表示
(setq i 0)
(while (< i (length myList))
(message (concat "myList(" (int-to-string i) "):" (nth i myList)))
(setq i (+ i 1)))