use std::hash::Hash;
use crate::labeled::arbitrary::automaton::LabeledAutomaton;
pub trait NonDeterministicLabeledAutomaton<Label: Hash + Eq + Clone>:
LabeledAutomaton<Label>
{
fn initial_states<'a>(&'a self) -> impl Iterator<Item = Self::State> + 'a
where
Self::State: 'a;
fn successors<'a>(
&'a self,
state: Self::State,
input: &Self::Input,
) -> impl Iterator<Item = Self::State> + 'a
where
Self::State: 'a;
}