use Hash;
/// Automaton with optional **output labels** on states.
///
/// This trait does **not** assume a finite state set or alphabet: iterators
/// returned by [`states`](LabeledAutomaton::states) and
/// [`alphabet`](LabeledAutomaton::alphabet) are not required to end.
///
/// Semantics are intentionally minimal: there is no built-in “accepting” flag;
/// callers treat states where [`get_label`](LabeledAutomaton::get_label) returns
/// [`Some`] as final / accepting when modeling classical languages. For
/// `Label = ()`, that matches the usual “marked accepting states” encoding.