module Language.Virgil.Types where
import Language.Cherenkov.AST
type TEnv = HashMap Ident Typ
inferType :: TEnv -> Expr -> ()
inferType _ (ELit (LInt _)) = TNamed "Int"
inferType _ (ELit (LDouble _)) = TNamed "Double"
inferType _ (ELit (LString _)) = TNamed "String"
inferType _ (ELit (LBool _)) = TNamed "Bool"
inferType e (ETup ts) = VTup (map (inferType e ts))
inferType e (EList ls) = undefined
inferType e (EVar v) = undefined