The following runs nearly instantaneously: (progn (cl-loop for i in (number-sequence 0 130000) collect (cons (number-to-string i) i)) :done) This seems to take a long time (didn't wait for it to finish): (progn (cl-loop for i in (number-sequence 0 130000) collect (cons (number-to-string i) i) into pairs) :done) Is this a known issue? I couldn't find anything in the bug tracker about it.