Fix pretty printing of module instances.
Allow instances of nested modules.

For example, instance X = M::N(0).
In duplicate variable errors, sort the location information.
Allow instances of modules defined in parameterised modules.

This comes at a slight cost of insisting that instances are created in
lexical order, which is not that unreasonable.
Allow instances of parameterless modules.

This can be a useful code structuring trick.
Add support for type annotations from parameterised modules.