The price of abstracting away from the type of identifiers

Making the type of identifiers a parameter in the abstract syntax required analogous changes to many other types and classes...

It would have been easier if one could add a type parameter to a module instead of adding it to every definition in the module...