TcRnDriver

ghc-7.6.3: The GHC API

Safe Haskell | None

TcRnDriver

Synopsis

- tcRnStmt :: HscEnv -> InteractiveContext -> LStmt RdrName -> IO (Messages, Maybe ([Id], LHsExpr Id, FixityEnv))
- tcRnExpr :: HscEnv -> InteractiveContext -> LHsExpr RdrName -> IO (Messages, Maybe Type)
- tcRnType :: HscEnv -> InteractiveContext -> Bool -> LHsType RdrName -> IO (Messages, Maybe (Type, Kind))
- tcRnImportDecls :: HscEnv -> [LImportDecl RdrName] -> IO (Messages, Maybe GlobalRdrEnv)
- tcRnLookupRdrName :: HscEnv -> RdrName -> IO (Messages, Maybe [Name])
- getModuleInterface :: HscEnv -> Module -> IO (Messages, Maybe ModIface)
- tcRnDeclsi :: HscEnv -> InteractiveContext -> [LHsDecl RdrName] -> IO (Messages, Maybe TcGblEnv)
- isGHCiMonad :: HscEnv -> InteractiveContext -> String -> IO (Messages, Maybe Name)
- tcRnLookupName :: HscEnv -> Name -> IO (Messages, Maybe TyThing)
- tcRnGetInfo :: HscEnv -> Name -> IO (Messages, Maybe (TyThing, Fixity, [ClsInst]))
- tcRnModule :: HscEnv -> HscSource -> Bool -> HsParsedModule -> IO (Messages, Maybe TcGblEnv)
- tcTopSrcDecls :: ModDetails -> HsGroup Name -> TcM (TcGblEnv, TcLclEnv)
- tcRnExtCore :: HscEnv -> HsExtCore RdrName -> IO (Messages, Maybe ModGuts)

# Documentation

tcRnStmt :: HscEnv -> InteractiveContext -> LStmt RdrName -> IO (Messages, Maybe ([Id], LHsExpr Id, FixityEnv))

The returned [Id] is the list of new Ids bound by this statement. It can be used to extend the InteractiveContext via extendInteractiveContext.

The returned TypecheckedHsExpr is of type IO [ () ], a list of the bound values, coerced to ().

tcRnExpr :: HscEnv -> InteractiveContext -> LHsExpr RdrName -> IO (Messages, Maybe Type)

tcRnType :: HscEnv -> InteractiveContext -> Bool -> LHsType RdrName -> IO (Messages, Maybe (Type, Kind))

tcRnImportDecls :: HscEnv -> [LImportDecl RdrName] -> IO (Messages, Maybe GlobalRdrEnv)

tcRnLookupRdrName :: HscEnv -> RdrName -> IO (Messages, Maybe [Name])

getModuleInterface :: HscEnv -> Module -> IO (Messages, Maybe ModIface)

ASSUMES that the module is either in the `HomePackageTable` or is a package module with an interface on disk. If neither of these is true, then the result will be an error indicating the interface could not be found.

tcRnDeclsi :: HscEnv -> InteractiveContext -> [LHsDecl RdrName] -> IO (Messages, Maybe TcGblEnv)

isGHCiMonad :: HscEnv -> InteractiveContext -> String -> IO (Messages, Maybe Name)

tcRnLookupName :: HscEnv -> Name -> IO (Messages, Maybe TyThing)

tcRnGetInfo :: HscEnv -> Name -> IO (Messages, Maybe (TyThing, Fixity, [ClsInst]))

tcRnModule :: HscEnv -> HscSource -> Bool -> HsParsedModule -> IO (Messages, Maybe TcGblEnv)

Top level entry point for typechecker and renamer

tcTopSrcDecls :: ModDetails -> HsGroup Name -> TcM (TcGblEnv, TcLclEnv)

tcRnExtCore :: HscEnv -> HsExtCore RdrName -> IO (Messages, Maybe ModGuts)