1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#[doc(inline)]
pub use super::{
  AppendContext,
  Context,
  Empty,
  EmptyContext,
  PartialSession,
  Protocol,
  Rec,
  RecX,
  Release,
  Session,
  SharedChannel,
  SharedProtocol,
  SharedSession,
  Slot,
};

pub trait ContextLens<C, A1, A2>: super::ContextLens<C, A1, A2>
where
  C: Context,
  A1: Slot,
  A2: Slot,
{
}

impl<N, C, A1, A2> ContextLens<C, A1, A2> for N
where
  C: Context,
  A1: Slot,
  A2: Slot,
  N: super::ContextLens<C, A1, A2>,
{
}

pub trait RecApp<A>: super::RecApp<A> {}

impl<A, X> RecApp<A> for X where X: super::RecApp<A> {}

pub trait SharedRecApp<X>: super::SharedRecApp<X> {}

impl<X, S> SharedRecApp<X> for S where S: super::SharedRecApp<X> {}

pub trait HasRecApp<F, A>: super::HasRecApp<F, A> {}

impl<F, A, X> HasRecApp<F, A> for X where X: super::HasRecApp<F, A> {}

pub trait ForwardChannel: super::ForwardChannel {}

impl<A> ForwardChannel for A where A: super::ForwardChannel {}