pub trait Fst<W: Weight>: Debug {
type Arc: Arc<W>;
type Iter: Iterator<Item = Self::Arc>;
type Symtab: IntoIterator<Item = String>;
// Required methods
fn get_start(&self) -> Option<StateId>;
fn get_finalweight(&self, _: StateId) -> W;
fn arc_iter(&self, _: StateId) -> Self::Iter;
fn get_isyms(&self) -> Option<Self::Symtab>;
fn get_osyms(&self) -> Option<Self::Symtab>;
fn is_final(&self, _: StateId) -> bool;
}