Hi Bradley, First, thank you for all the work you put into this beautiful SRFI. There have been a plethora of array SRFIs, but none as comprehensive. I'm sorry I didn't have time to contribute to the original discussion, but have gone through recently, and have written a clean room, portable R7RS implementation: https://github.com/ashinn/chibi-scheme/blob/master/lib/srfi/179.scm It passes your test suite, though I had to comment out many tests which made use of internals of your implementation. I also want to make the test suite deterministic - randomized tests are extremely difficult to work with. For specialized-array-reshape, I was lazy and took advantage of the fact that indexing is reversible (though not necessarily as an affine transformation), and created a custom indexer which is the following composition: (compose orig-indexer invert-orig-indexer new-domain-indexer) Thus the reshape never fails. However, I intend to flatten all of the affine transformations next, at which point I'll need to implement this properly. f8-storage-class and f16-storage-class are bound to #f. Planned upcoming applications of arrays: * images: a standard representation should probably be a SRFI of its own * linear algebra: wrapping blas and/or cuda, with NNs a trivial application * data frames: matrices with named columns, ideally using column-oriented storage classes Some minor comments on the document itself: In interval-cartesian-product, the definition refers to array-lower/upper-bounds->list, which should presumably be interval-lower/upper-bounds->list. What are the default values of the safe/mutable parameters? The name and description of array-elements-in-order? is misleading, suggesting it is the elements themselves which must be in order. Perhaps array-indices-in-order? or array-contiguous-and-in-order? would have been better. -- Alex