Distance functions for numeric vectors.
Each distance function is exposed as a parametric modules that lets
you control both the scalar type and the dimensionality of the
space that the vectors inhabit. This is concretely done by
specifying the representation of vectors as a module that
vector module type.