Trait adapton::catalog::collections::RoseElim [] [src]

pub trait RoseElim<Leaf, Branch>: Debug + Clone + Hash + PartialEq + Eq {
    type Children: ListElim<Self>;
    fn elim<Arg, Res, LeafFn, BranchFn, NameFn>(
        _: Self,
        _: Arg,
        _: LeafFn,
        _: BranchFn,
        _: NameFn
    ) -> Res
    where
        LeafFn: FnOnce(Leaf, Arg) -> Res,
        BranchFn: FnOnce(Branch, Self::Children, Arg) -> Res,
        NameFn: FnOnce(Name, Self, Arg) -> Res
; }

Rose Trees: A tree with arbitrary branching at each node. See also, Definition 2 (page 2) of Parallel Implementation of Tree Skeletons, by D.B. Skillicorn 1995.

Associated Types

Required Methods

Implementors