append type added by megane on Thu Oct 25 14:01:58 2012

;;in types.db: (append (#(procedure #:clean) append (list #!rest) *))

(: append2 (forall (a) (procedure (#!rest (list-of a)) (list-of a))))
(define (append2 . rest)
  (apply append rest))

(cond-expand
 (compiling
  (compiler-typecase (append2 '(1) '(2))
    ((list-of fixnum) #t))))

;;(append2
;;  (forall (a1) (#(procedure) append2 (#!rest (list-of a1)) (list-of a1))))