use crate::Symbolic;
pub trait Alphabet<S: Symbolic>: Clone + IntoIterator<Item = S> {
fn alphabet(self) -> Vec<S> {
Vec::from_iter(self)
}
fn default_symbol(&self) -> S {
match self.clone().alphabet().first() {
Some(v) => v.clone(),
None => Default::default(),
}
}
}
impl<S: Symbolic> Alphabet<S> for Vec<S> {}