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>;
}