Many numerical algorithms are specified in terms of operations on vectors and matrices. Matrix operations can be executed extremely efficiently using specialized linear algebra kernels in libraries such as ATLAS or LAPACK. The resulting programs can be orders of magnitude faster than naive implementations in C, and this is one reason why matrix computation interpreters such at Matlab and Octave are popular in scientific computing. However, the process of expressing an algorithm in terms of matrices can be error-prone. Typical matrix languages are weakly-typed. If we could expose certain properties of operands to a type system, so that their consistency could be statically verified by a type checker, then we would be able to catch many common errors at compile time. We call this idea “strongly typed linear algebra” and describe a prototype implementation in which dimensions are exposed to the type system, which is based on Alberto Ruiz’s GSLHaskell [Ruiz(2005)] and uses techni...