A unique handle identifying a type variable. The binding state (Unbound /
Bound-to-a-Type) lives in a TypeEnv owned by the checker; the handle is
a plain id so Type stays a pure value (Clone, Eq, Hash, Serialize).
Resolve the module of a qualified ID. For go: IDs containing /,
does a longest-prefix match against module_ids to disambiguate paths
whose module segment contains dots (e.g. gopkg.in/yaml.v3). Otherwise
splits on the first dot. Returns None when the id has no dot and is
not a registered go: module.