pub type BoxedStr = Box; pub type IntMap = std::collections::HashMap; pub struct TyPair(T, U); pub type T0 = TyPair; pub type T1 = TyPair; pub type T2 = TyPair; pub type T3 = TyPair; pub struct CtPair; pub type C0 = CtPair<43, 43>; pub type C1 = CtPair<0, 1>; pub type C2 = CtPair<{1 + 2}, 3>; pub struct Re<'a, U = &'a ()>(&'a (), U); pub type R0<'q> = Re<'q>; pub type R1<'q> = Re<'q, &'q ()>; pub type R2<'q> = Re<'q, &'static ()>; pub type H0 = fn(for<'a> fn(Re<'a>)); pub type H1 = for<'b> fn(for<'a> fn(Re<'a, &'b ()>)); pub type H2 = for<'a> fn(for<'b> fn(Re<'a, &'b ()>)); pub struct Proj::Assoc>(T, U); pub trait Basis { type Assoc; } impl Basis for () { type Assoc = bool; } pub type P0 = Proj<()>; pub type P1 = Proj<(), bool>; pub type P2 = Proj<(), ()>; pub struct Alpha fn(&'any ())>(T); pub type A0 = Alpha; pub type A1 = Alpha fn(&'arbitrary ())>; pub struct Multi(A, B); pub type M0 = Multi; pub trait Trait<'a, T = &'a ()> {} pub type F = dyn for<'a> Trait<'a>;