Update cabal file.
Clean up evaluator.

* Use `Either` for signalling non-linearity
* More algebraic-looking representation of complex linear combinations