pub trait ParserNonDetPDATrait {
type StateItem: PartialEq + Clone + Copy;
type SignalItem: PartialEq;
type DataItem;
type StackSymbolItem: PartialEq;
// Required methods
fn signal(&mut self, signal: &Self::SignalItem);
fn state(&self) -> &Self::StateItem;
fn data(&self) -> &<Self as ParserNonDetPDATrait>::DataItem;
fn data_mut(&mut self) -> &mut <Self as ParserNonDetPDATrait>::DataItem;
}