Added a bunch of new tests and caught a bug they revealed:
Unit * Value raised an error