1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
pub use self::{alphabet::*, primitives::*, scope::*, utils::*};
pub(crate) mod alphabet;
pub(crate) mod primitives;
pub(crate) mod scope;
pub(crate) mod utils;
pub mod states;
pub mod turing;
pub trait Extend<A> {
fn extend<T: IntoIterator<Item = A>>(&mut self, iter: T) -> Result<(), String>;
}
pub trait Symbolic: Clone + Default + PartialEq + std::fmt::Debug + std::fmt::Display {}
impl Symbolic for char {}
impl Symbolic for &str {}
impl Symbolic for String {}
pub trait With<T> {
type Output;
fn with(&self, other: &T) -> Self::Output;
}