pub trait MonoidalReducerStatement<'a, T: Monoid>: MonoidalReducerExpression<'a, T> {
fn reduce_statement(&mut self, input: &'a Statement<'a>, value: T) -> T { ... }
fn reduce_assign_access(
&mut self,
input: &AssignAccess<'a>,
left: Option<T>,
right: Option<T>
) -> T { ... }
fn reduce_assign(
&mut self,
input: &AssignStatement<'a>,
accesses: Vec<T>,
value: T
) -> T { ... }
fn reduce_block(
&mut self,
input: &BlockStatement<'a>,
statements: Vec<T>
) -> T { ... }
fn reduce_conditional_statement(
&mut self,
input: &ConditionalStatement<'a>,
condition: T,
if_true: T,
if_false: Option<T>
) -> T { ... }
fn reduce_formatted_string(
&mut self,
input: &ConsoleArgs<'a>,
parameters: Vec<T>
) -> T { ... }
fn reduce_console(&mut self, input: &ConsoleStatement<'a>, argument: T) -> T { ... }
fn reduce_definition(
&mut self,
input: &DefinitionStatement<'a>,
value: T
) -> T { ... }
fn reduce_expression_statement(
&mut self,
input: &ExpressionStatement<'a>,
expression: T
) -> T { ... }
fn reduce_iteration(
&mut self,
input: &IterationStatement<'a>,
start: T,
stop: T,
body: T
) -> T { ... }
fn reduce_return(&mut self, input: &ReturnStatement<'a>, value: T) -> T { ... }
}