Use different types for different predeclared identifiers.
Merge pull request #41 from velour/predeclared

Use different types for different predeclared identifiers.