Found while implementing real cross-file type ownership for #480/#487 (tracker #416).
compileSource retains the HIR, type interner, and relation engine in Compilation, but destroys its stack-local Checker before returning. checkSourceFile points Engine.rest_signatures at Checker.rest_signatures. The returned engine therefore retains a pointer to destroyed checker state, and generic/signature metadata needed to interpret its retained TypeIds is discarded.
Move the checked declaration/signature metadata into an explicitly owned result before checker destruction, without reparsing or recreating shallow type shapes. Rebind the retained engine's rest metadata to stable result storage. Preserve type/generic maps, signature arity/rest/this metadata, predicates, overloads, and source-node provenance with the owning HIR. Keep transient flow caches out of the persistent result.
Add post-compilation relation queries and generic/predicate/metadata lifetime regressions, including independently owned compilations and cleanup. This is a prerequisite for cross-file typed resolution, not completion of #480/#487 and not grounds for benchmark readmission.