traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.CQPL.TypeCheck

Synopsis

Monad

data CheckingCtx sizeT #

Env for type checking

Instances

Instances details
Generic (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

Associated Types

type Rep (CheckingCtx sizeT) :: Type -> Type #

Methods

from :: CheckingCtx sizeT -> Rep (CheckingCtx sizeT) x #

to :: Rep (CheckingCtx sizeT) x -> CheckingCtx sizeT #

HasProcCtx (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

Methods

_procCtx :: (sizeT0 ~ SizeType (CheckingCtx sizeT), precT ~ PrecType (CheckingCtx sizeT)) => Lens' (CheckingCtx sizeT) (ProcCtx sizeT0) #

HasDefault (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

Methods

default_ :: CheckingCtx sizeT #

HasTypingCtx (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

Methods

_typingCtx :: sizeT0 ~ SizeType (CheckingCtx sizeT) => Lens' (CheckingCtx sizeT) (TypingCtx sizeT0) #

type Rep (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

type Rep (CheckingCtx sizeT) = D1 ('MetaData "CheckingCtx" "Traq.CQPL.TypeCheck" "traq-0.2.0.0-inplace" 'False) (C1 ('MetaCons "CheckingCtx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProcCtx sizeT)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypingCtx sizeT))))
type SizeType (CheckingCtx sizeT) # 
Instance details

Defined in Traq.CQPL.TypeCheck

type SizeType (CheckingCtx sizeT) = sizeT

type TypeChecker sizeT = ReaderT (CheckingCtx sizeT) (Either MyError) #

Monad for type checking

Checking

typeCheckUStmt :: forall sizeT. TypingReqs sizeT => UStmt sizeT -> TypeChecker sizeT () #

typeCheckStmt :: forall sizeT. TypingReqs sizeT => Stmt sizeT -> TypeChecker sizeT () #

Check a statement

typeCheckProc :: forall sizeT. TypingReqs sizeT => ProcDef sizeT -> TypeChecker sizeT () #

typeCheckProgram :: forall sizeT. TypingReqs sizeT => Program sizeT -> Either MyError () #

Check an entire program given the input bindings.