Initial Commit
Add unit testing target.
Song String value type.
Song Integer tests.
Extract refactor.
Song String tests.
Song Variable tests.
Tests for unit value.
Pair unit tests.
Let unit tests.
Test embedded lets. Ensure binding is evaluated before being bound to the variable name.
Function unit tests.
Closure unit tests.
Function call description. No evaluation yet.
Ensure context descriptions are deterministically ordered.
Test error handling.
Test calling a non-closure results in an error.
Tidy use of enums.
Test calling an invalid closure which does not wrap a function.
Extract refactor.