1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
pub trait TyCon: Sized {}
pub trait TypeApp<'a, A>: TyCon
{
type Applied: Sized + Send;
}
pub trait HasTypeApp<'a, F, A>: Send
{
fn get_applied(self: Box<Self>) -> Box<F::Applied>
where
F: TypeApp<'a, A>;
fn get_applied_borrow(&self) -> &F::Applied
where
F: TypeApp<'a, A>;
}