It'd be useful to pull `checkElemType` out into a static method and add a new version of `TCompactProtocol` that handles this issue as well.