Module chalk_ir::interner

source ·
Expand description

Encapsulates the concrete representation of core types such as types and goals.


  • Implemented by types that have an associated interner (which are virtually all of the types in chalk-ir, for example). This lets us map from a type like Ty<I> to the parameter I.
  • A “interner” encapsulates the concrete representation of certain “core types” from chalk-ir. All the types in chalk-ir are parameterized by a I: Interner, and so (e.g.) if they want to store a type, they don’t store a Ty<I> instance directly, but rather prefer a Ty<I>. You can think of I::Type as the interned representation (and, indeed, it may well be an interned pointer, e.g. in rustc).