anchor.diff:  	  '(glist-free glist))
          (nreverse list))))
   
  -(deftype-method cleanup-alien double-list (type-spec glist &optional copied)
  +(deftype-method cleanup-alien glist (type-spec glist &optional copied)
     (declare (ignore copied))
  -  (let* ((element-type-spec (second (type-expand-to 'double-list type-spec)))
  +  (let* ((element-type-spec (second (type-expand-to 'glist type-spec)))
   	 (alien-type-spec (translate-type-spec element-type-spec)))
       `(let ((glist ,glist))
          (unless (null-pointer-p glist)
  
positive.code: 	   (dotimes (i ,(if (eq length '*) '(length vector) length) c-vector)
  	     (setf
  	      (,(sap-ref-fname element-type) c-vector (* i ,element-size))
  	      ,(translate-to-alien element-type '(svref vector i) :copy))))))))
  
  (deftype-method cleanup-alien vector (type-spec sap &optional copied)
    (declare (ignore type-spec copied))
  
negative.code:     (signed `(sap-ref-signed ,glist 0))
      (system-area-pointer `(sap-ref-sap ,glist 0))))
  
  (defun glist-next (glist)
    (unless (null-pointer-p glist)
      (sap-ref-sap glist +size-of-sap+)))
    
  (define-foreign ("g_list_free" glist-free) () nil
    (glist pointer))
  
  (deftype-method translate-type-spec glist (type-spec)
    (declare (ignore type-spec))
    (translate-type-spec 'pointer))
  
  (deftype-method size-of glist (type-spec)
    (declare (ignore type-spec))
    (size-of 'pointer))
  
  (deftype-method translate-to-alien glist (type-spec list &optional copy)
    (declare (ignore copy))
    (let* ((element-type-spec (second (type-expand-to 'glist type-spec)))
  	 (to-alien (translate-to-alien element-type-spec 'element t)))
      `(let ((glist (make-pointer 0))) 
         (dolist (element ,list glist)
  	 (setq glist (glist-append glist ,to-alien ,element-type-spec))))))
  
  (deftype-method translate-from-alien
      glist (type-spec glist &optional (alloc :reference))
    (let ((element-type-spec (second (type-expand-to 'glist type-spec))))
      `(let ((glist ,glist)
  	   (list nil))
         (do ((tmp glist (glist-next tmp)))
  