add comment support. There should be doc comments that get emitted as tokens incorporate BaseTypeReference.validate into semantic analysis phase 1 + 2 add sensible equals and hashCode to reporting to avoid reporting the same error to the user twice