Documentation

A Generator is a Set of Components labled with Signs. Strictly speaking, we could make do
without components, as components = Data.Set.fromList . Data.Map.keys $ signs.
kgrade depends totally on signs, so it should be taken out too.

Stands for sums of generators modulo 2. wrapGen wraps a single generator.
| Should be a type synonym instead?
| This is something like an implementation of mod 2 vector spaces. Could this be done better with vector-spaces or linear?