Copyright | (c) 2000 - 2007 Wolfgang Lux Martin Engelke Björn Peemöller 2014 - 2015 Jan Tikovsky |
---|---|
License | BSD-3-clause |
Maintainer | bjp@informatik.uni-kiel.de |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Checks.KindCheck
Description
After the source file has been parsed and all modules have been imported, the compiler first performs kind checking on all type definitions and signatures. Because Curry currently does not support type classes, kind checking is rather trivial. All types must be of first order kind (*), i.e., all type constructor applications must be saturated.
During kind checking, this module will also disambiguate nullary type constructors and type variables which -- in contrast to Haskell -- is not possible on purely syntactic criteria. In addition it is checked that all type constructors and type variables occurring on the right hand side of a type declaration are actually defined and no identifier is defined more than once.