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

Use different types for different predeclared identifiers.