definition module Sil.Types from StdOverloaded import class ==, class toString, class zero from Data.Error import :: MaybeError from Data.Maybe import :: Maybe from Sil.Syntax import :: Expression, :: Function, :: Name, :: Op1, :: Op2 :: Type = TBool | TInt | TVoid | (-->) infixr Type Type :: TypeError = IllegalApplication Type Type instance == Type instance toString Type instance toString TypeError /** * Size of an expression on the stack */ typeSize :: Type -> Int :: TypeResolver :== Name -> Maybe (MaybeError TypeError Type) instance zero TypeResolver class type a :: TypeResolver a -> Maybe (MaybeError TypeError Type) instance type Function instance type Expression instance type Name instance type Op1 instance type Op2