pub trait TyDecoder: Decoder {
type I: Interner;
const CLEAR_CROSS_CRATE: bool;
// Required methods
fn interner(&self) -> Self::I;
fn cached_ty_for_shorthand<F>(
&mut self,
shorthand: usize,
or_insert_with: F
) -> <Self::I as Interner>::Ty
where F: FnOnce(&mut Self) -> <Self::I as Interner>::Ty;
fn with_position<F, R>(&mut self, pos: usize, f: F) -> R
where F: FnOnce(&mut Self) -> R;
fn decode_alloc_id(&mut self) -> <Self::I as Interner>::AllocId;
// Provided method
fn positioned_at_shorthand(&self) -> bool { ... }
}