- this class models domains from linear algebra
and is needed for the `Vector` class to be created
- `Domain` wraps Python's built-in `frozenset` type
+ they must contain at least one label
+ as a convenience, so-called canonical `Domain`s
(i.e., with labels `0`, `1`, ...) can be created
by passing in a positive `int`eger to `Domain()`
- the `Domain.is_canonical` property indicates
what kind a `Domain` is
- add unit tests for the class
- add extensive documentation for the class