Supported nested reified parameter declarations

Also switched to using type names as identifiers instead of their
indices