pprint refactoring
generalise rows to higher dimensions
docstring edits
generalise columns to higher dimensions
refactor dot API function and vector-dot protocol function to allow
support for higher dimensional inner products
support dot for numeric scalars
improve dot product for persistent vectors
implement PVectorOps for double arrays
use is-double-array? for instance checks