made types consistent with those defined in Hack