Serialize computations in augment, complement, and diminish

This makes those computations, and a few others, such as tightCrosses,
pure, which allows for simpler testing.

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Disallow creation of empty contexts

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Add preliminary test-suite

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Remove unneeded import

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Ignore files generated by cabal-sandbox

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Bump dependencies

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
Add CLI option parsing

Signed-off-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>