pub trait ListT<A: Adapton, Elm>: Debug + Clone + Hash + PartialEq + Eq {
type List: Debug + Hash + PartialEq + Eq + Clone;
fn nil(&mut A) -> Self::List;
fn cons(&mut A, Elm, Self::List) -> Self::List;
fn name(&mut A, A::Name, Self::List) -> Self::List;
fn art(&mut A, Art<Self::List, A::Loc>) -> Self::List;
fn rc(&mut A, Rc<Self::List>) -> Self::List;
fn elim<Res, Nil, Cons, Name>(&mut A, Self::List, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A) -> Res, Cons: FnOnce(&mut A, Elm, Self::List) -> Res, Name: FnOnce(&mut A, A::Name, Self::List) -> Res;
fn elim_move<Arg, Res, Nil, Cons, Name>(&mut A, Self::List, Arg, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A, Arg) -> Res, Cons: FnOnce(&mut A, Elm, Self::List, Arg) -> Res, Name: FnOnce(&mut A, A::Name, Self::List, Arg) -> Res;
fn singleton(st: &mut A, hd: Elm) -> Self::List { ... }
fn is_empty(st: &mut A, list: Self::List) -> bool { ... }
}
Associated Types
Required Methods
fn nil(&mut A) -> Self::List
fn cons(&mut A, Elm, Self::List) -> Self::List
fn name(&mut A, A::Name, Self::List) -> Self::List
fn art(&mut A, Art<Self::List, A::Loc>) -> Self::List
fn rc(&mut A, Rc<Self::List>) -> Self::List
fn elim<Res, Nil, Cons, Name>(&mut A, Self::List, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A) -> Res, Cons: FnOnce(&mut A, Elm, Self::List) -> Res, Name: FnOnce(&mut A, A::Name, Self::List) -> Res
fn elim_move<Arg, Res, Nil, Cons, Name>(&mut A, Self::List, Arg, Nil, Cons, Name) -> Res where Nil: FnOnce(&mut A, Arg) -> Res, Cons: FnOnce(&mut A, Elm, Self::List, Arg) -> Res, Name: FnOnce(&mut A, A::Name, Self::List, Arg) -> Res
Provided Methods
Implementors