definition module Sil.Check from StdOverloaded import class toString from Data.Maybe import :: Maybe from Sil.Syntax import :: Program, :: Name from Sil.Types import :: Type :: CheckError = NoMainFunction | MainFunctionInvalidType Type | DuplicateFunctionName Name | DuplicateLocalName Name Name | ReturnExpressionFromVoid Name | NoReturnFromNonVoid Name | LocalVoid Name Name instance toString CheckError checkProgram :: *(Maybe *File) Program -> *([CheckError], *Maybe *File)