diff --git a/schala-lang/src/typechecking.rs b/schala-lang/src/typechecking.rs index dac6ca4..f8d99b4 100644 --- a/schala-lang/src/typechecking.rs +++ b/schala-lang/src/typechecking.rs @@ -1,4 +1,5 @@ use std::rc::Rc; +use std::collections::HashMap; /* use std::collections::{HashSet, HashMap}; use std::collections::hash_set::Union; @@ -29,6 +30,18 @@ enum TConst { Custom(String) } +#[derive(Debug, PartialEq, Clone)] +struct Scheme { + names: Vec, + ty: Type, +} + +#[derive(Debug, PartialEq, Clone)] +struct Substitution(HashMap); + +#[derive(Debug, PartialEq, Clone)] +struct TypeEnv(HashMap); + pub struct TypeContext<'a> { values: StateStack<'a, TypeName, Type> }