From 4caf8096b39b3bfe095e7edcf04d5d90141eaa1b Mon Sep 17 00:00:00 2001 From: greg Date: Sun, 3 Jun 2018 00:47:29 -0700 Subject: [PATCH] Add Scheme, TypeEnv, Substitution data structs --- schala-lang/src/typechecking.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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> }