1use crate::r#type::TVar;
2
3pub mod algorithm_u;
4pub mod algorithm_w;
5pub mod assumption;
6pub mod language;
7pub mod substitution;
8pub mod r#type;
9pub mod constraint;
10pub mod traits;
11
12#[derive(Default)]
13pub(crate) struct InferState {
14 variable_index: usize,
15}
16
17impl InferState {
18 pub fn new_var(&mut self) -> TVar {
19 let result = TVar(self.variable_index);
20 self.variable_index += 1;
21 result
22 }
23}
24
25pub const LOWER_ALPHABET: &str = "abcdefghijklmnopqrstuvwxyz";
26pub const UPPER_ALPHABET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";