pub trait Boundary<T> { type Class: Class<T>; // Required method fn apply(&self, class: &Self::Class) -> Option<Self::Class>; }