pub trait Aggregate {
fn is_aggregate(&self, prism: AnchoredLine) -> bool { ... }
fn count(&self, prism: AnchoredLine) -> u32 { ... }
fn empty(&self, prism: AnchoredLine) -> Unit { ... }
fn conj(&self, prism: AnchoredLine, x: Unit) -> Unit { ... }
fn peek(&self, prism: AnchoredLine) -> *const Unit { ... }
fn pop(&self, prism: AnchoredLine) -> (Unit, Unit) { ... }
fn get(&self, prism: AnchoredLine, k: Unit) -> *const Unit { ... }
fn reduce(
&self,
prism: AnchoredLine,
process: &mut [Box<dyn Process>]
) -> Value { ... }
}