Reorganise namespaces to have a module containing common code
Some more reorganisations
Modify tests to call new IsValid properly
Don't use filenames (yet)
Add a TODO

Mutable bindings can only be turned into functions by using anonymous
functions
Change message to reflect arguments given
Add a type annotation
Decrease qualification of names
Add AddArgument refactoring

Currently no way of choosing argument name or default value