Enums

Allows a kernel to have either a dense or a sparse inner matrix in a way that is transparent to the user

Traits

Specifies the methods an inner matrix of a kernel must be able to provide