Copyright | (c) 2011 - 2013, Björn Peemöller |
---|---|
License | BSD-3-clause |
Maintainer | bjp@informatik.uni-kiel.de |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Checks
Description
This module subsumes the different checks to be performed on a Curry module during compilation, e.g. type checking.
- type Check m a = Options -> CompEnv a -> CYT m (CompEnv a)
- interfaceCheck :: Monad m => Check m Interface
- importCheck :: Monad m => Interface -> Maybe ImportSpec -> CYT m (Maybe ImportSpec)
- kindCheck :: Monad m => Check m Module
- syntaxCheck :: Monad m => Check m Module
- precCheck :: Monad m => Check m Module
- typeCheck :: Monad m => Check m Module
- exportCheck :: Monad m => Check m Module
- expandExports :: Monad m => Options -> CompEnv Module -> m (CompEnv Module)
- warnCheck :: Options -> CompilerEnv -> Module -> [Message]
Documentation
importCheck :: Monad m => Interface -> Maybe ImportSpec -> CYT m (Maybe ImportSpec) Source #
kindCheck :: Monad m => Check m Module Source #
Check the kinds of type definitions and signatures.
- Declarations: Nullary type constructors and type variables are disambiguated
- Environment: remains unchanged
syntaxCheck :: Monad m => Check m Module Source #
Check for a correct syntax.
- Declarations: Nullary data constructors and variables are disambiguated, variables are renamed
- Environment: remains unchanged
precCheck :: Monad m => Check m Module Source #
Check the precedences of infix operators.
- Declarations: Expressions are reordered according to the specified precedences
- Environment: The operator precedence environment is updated
typeCheck :: Monad m => Check m Module Source #
Apply the correct typing of the module. The declarations remain unchanged; the type constructor and value environments are updated.