Initial commit
Proper type handling
Better match error handling.
Add NuGet package restore.
Add tests.
Fix pattern matching to do the right thing.
Add more tests to bring code coverage up to 100%