A DSL (embedded in Haskell) for specifying linear algebra computations