libcspm-1.0.0: src/CSPM/TypeChecker/InteractiveStmt.hs
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, TypeSynonymInstances #-}
module CSPM.TypeChecker.InteractiveStmt where
import CSPM.DataStructures.Names
import CSPM.DataStructures.Syntax
import CSPM.TypeChecker.Common
import CSPM.TypeChecker.Decl
import CSPM.TypeChecker.Expr()
import CSPM.TypeChecker.Unification
import Util.Annotated
instance TypeCheckable TCInteractiveStmt () where
errorContext a = Nothing
typeCheck' = typeCheck . unAnnotate
instance TypeCheckable (InteractiveStmt Name) () where
errorContext a = Nothing
typeCheck' (Bind decls) = typeCheckDecls decls
typeCheck' (Evaluate exp) =
typeCheck exp >>= evaluateDots >> return ()
typeCheck' (RunAssertion a) = typeCheck a >> return ()