kodept_inference/
lib.rs

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";