pub trait SelectType<Q, Then, Else> { type Out; }
Selects between two types based on a capability query (for associated types).