This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
BSD-3-Clause licensed by Justus Sagemüller
Maintained by (@) jsag $ hvl.no
The linear package offers efficient
vector types — where vector means element of a free vector space, i.e.
fixed-length arrays of numbers. The entire interface of that library is based on
this concept of free vectors with a canonical coordinate representation.
While this is practically speaking often useful, it is also
Questionable in terms of conceptual elegance. The idea of a vector has
originally not much to do with number-arrays; in physics a vector is just
a quantity with magnitude and direction. Only by fixing a basis can
a coordinate representation arise from that.
Not as safe as we'd like. The typical linear-algebra languages like Matlab
or Fortran are notorious for hard-to spot mistakes that often arise from the
total reliance on coordinate representations (every vector/linear map is just
a matrix of number). linear already avoids most of these problems because
it can at least check dimensions at compile-time and usually doesn't need
any indices, but some trouble still remains. E.g., two different 3-dimensional
spaces are indistinguishable by the type system (unless you wrap one of them
in a newtype, however that also needs to be parameterised on the coordinate
type to work with the rest of the library).
The vector-space library
has arguably a better (albeit less complete) interface. To gain access to
that interface with the more efficient types from linear, we here provide
the necessary orphan instances.