Hello!

When working on a double-linked list data structure I noticed that in the current implementation `pp-buffer' and therefore `pp-to-string' and `pp' produce not-so-pretty output:

;; -----
[mu-queue 3 #1=[mu-queue--node 1 nil #2=[mu-queue--node 2 #1# #3=[mu-queue--node 3 #2# nil]]]
    #3#]
;; -----

Applying the attached patch would result in the form: 

;; -----
[mu-queue 3
    #1=[mu-queue--node 1 nil
  #2=[mu-queue--node 2 #1#
 #3=[mu-queue--node 3 #2# nil]]]
    #3#]
;; -----

which corresponds better to the behaviour withouut `print-circle'. Since there should be whitespace before the #1=(...) forms, the change also should not break existing behaviour. 

kind regards, Klaus-Dieter Bauer


PS: Without `print-circle' the data structure reads

[mu-queue 3
 [mu-queue--node 1 nil
  [mu-queue--node 2 #1
   [mu-queue--node 3 #2 nil]]]
 [mu-queue--node 3
  [mu-queue--node 2
   [mu-queue--node 1 nil #2]
   #1]
  nil]]