Jiapi: A Type Checker Generator for Statically Typed Languages