pub trait TyEncoder: Encoder {
type I: Interner;
const CLEAR_CROSS_CRATE: bool;
fn position(&self) -> usize;
fn type_shorthands(
&mut self
) -> &mut HashMap<<Self::I as Interner>::Ty, usize, BuildHasherDefault<FxHasher>>;
fn predicate_shorthands(
&mut self
) -> &mut HashMap<<Self::I as Interner>::PredicateKind, usize, BuildHasherDefault<FxHasher>>;
fn encode_alloc_id(
&mut self,
alloc_id: &<Self::I as Interner>::AllocId
) -> Result<(), Self::Error>;
}