# Algebra

The spire project is a dependency of Axle.
`spire.algebra`

defines typeclasses for Monoid, Group, Ring, Field, VectorSpace, etc, and
witnesses for many common numeric types as well as those defined in `spire.math`

The `axle.algebra`

package defines several categories of typeclasses:

- higher-kinded: Functor, Finite, Indexed, Aggregatable
- mathematical: LinearAlgebra, LengthSpace
- visualization: Tics, Plottable

Axioms are defined in the axle.algebra.laws package as ScalaCheck properties.

They are organized with Discipline.