kodept-inference 0.2.3

Simple compiler with dependent types support in mind
Documentation
use crate::r#type::TVar;

pub mod algorithm_u;
pub mod algorithm_w;
pub mod assumption;
pub mod language;
pub mod substitution;
pub mod r#type;
pub mod constraint;
pub mod traits;

#[derive(Default)]
pub(crate) struct InferState {
    variable_index: usize,
}

impl InferState {
    pub fn new_var(&mut self) -> TVar {
        let result = TVar(self.variable_index);
        self.variable_index += 1;
        result
    }
}

pub const LOWER_ALPHABET: &str = "abcdefghijklmnopqrstuvwxyz";
pub const UPPER_ALPHABET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";