Previous: , Up: srfi ralists spec   [Index]


2.33.4.3 Implementation requirements

Random–access pairs must be disjoint from all other base types with the possible exception of (linear–access) pairs.

The external representation of random–access pairs is unspecified. The behavior of equal? when given a random–access pair and a sequential–access pair is unspecified in implementations with disjoint representations.

The behavior of eq? and eqv? on random–access pairs must be the same as that for pairs, vectors, or records. Namely, two random–access pair objects are eq? if and only if they are eqv?, and they are eqv? if and only if they refer to the same location in the store.

All argument checking for each operation must be done within the time bounds given for that operation.

Implementations are encouraged, but not required, to support random–access pairs and lists as their primary pair and list representation. In such an implementation, the external representation of random–access pairs and list should be as described in section 4.3.2 (Pairs and lists) of R6RS, the behavior of equivalence predicates on random–access pairs should be as described in section 11.5 (Equivalence predicates) of R6RS, and so on. In short, all pairs should be random–access pairs.

Implementations supporting SRFI Libraries [4] and SRFI-101 must provide the following libraries:

(srfi :101)                                 ; Composite libraries
(srfi :101 random-access-lists)

(srfi :101 random-access-lists procedures)  ; Procedures only
(srfi :101 random-access-lists syntax)      ; Syntax only