> Running an ML program only to discover an off by one issue after running for > 10 minutes sucks. How can we do better?
Use slices and make them lenient, using 0.0 for missing values or similar. For small matrixes like 4x4 or 3x3 is makes sense to encode them in the type and use the type system but who cares about the difference between a 1001x1001 matrix and a 1000x1000? Also, the memory management changes, big matrixes should prevent copying or use copy-on-write or atomic RC (or ...) whereas small matrixes should be stored in place.