7.8

### 3Perflinty Auto

 (require perflinty/auto) package: rackpgmp

This section describes a sequence library that automatically specializes each instance to a list or vector, depending on the list and vector scores of each instance of a seq.

 syntax(seq v ...)
Like a list or vector, depending on the list and vector scores for this instance.

 procedure(seq? s?) → boolean? s? : any/c
Returns #t if s? is a seq, and #f otherwise.

seq? does not affect scores.

 procedure(seq-map proc s) → seq? proc : procedure? s : seq?
Like a map or vector-map but on seqs.

seq-map does not affect scores.

 procedure(seq-first s) → any/c s : seq?
Like a car or (vector-ref s 0) but on seqs.

seq-first adds 1 to the list score.

 procedure(seq-rest s) → seq? s : seq?
Like a cdr but on seqs.

seq-rest adds 1 to the list score.

 procedure(seq-cons ele s) → seq? ele : any/c s : seq?
Like a cons but on seqs.

seq-cons adds 1 to the list score.

 procedure(seq-append s1 s2) → seq? s1 : seq? s2 : seq?
Like a append but on seqs.

seq-append adds 1 to the list score.

 procedure(seq-copy s) → seq? s : seq?
Like a vector-copy but on seqs.

seq-copy does not affect scores.

 procedure(seq-ref s pos) → any/c s : seq? pos : exact-nonnegative-integer?
Like a vector-ref but on seqs.

seq-ref adds 1 to the vector score.

 procedure(seq-set! s pos v) → void? s : seq? pos : exact-nonnegative-integer? v : any/c
Like a vector-set! but on seqs.

seq-set! adds 1 to the vector score.

 procedure(seq-length s) → any/c s : seq?
Like a vector-length but on seqs.

seq-length adds 1 to the vector score.