free-vector-spaces: Instantiate the classes from the vector-space package with types from linear

[ bsd3, library, math ] [ Propose Tags ]

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.

Versions [faq],,,,
Dependencies base (>=4.6 && <5.1), lens (==4.*), linear (>=1.18 && <1.23), MemoTrie, vector-space (>=0.8 && <0.13) [details]
License BSD-3-Clause
Author Justus Sagemüller
Maintainer (@) sagemueller $
Category Math
Home page
Source repo head: git clone git://
Uploaded by leftaroundabout at Tue Aug 2 22:23:40 UTC 2016
Distributions NixOS:
Downloads 1444 total (99 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees