Safe Haskell | None |
---|---|
Language | Haskell98 |
This module implements the kind checker
- kindOf :: ModuleName -> Type -> Check Kind
- kindOfWithScopedVars :: Type -> Check (Kind, [(String, Kind)])
- kindsOf :: Bool -> ModuleName -> ProperName -> [(String, Maybe Kind)] -> [Type] -> Check Kind
- kindsOfAll :: ModuleName -> [(ProperName, [(String, Maybe Kind)], Type)] -> [(ProperName, [(String, Maybe Kind)], [Type])] -> Check ([Kind], [Kind])
Documentation
kindOfWithScopedVars :: Type -> Check (Kind, [(String, Kind)]) Source
Infer the kind of a single type, returning the kinds of any scoped type variables
kindsOf :: Bool -> ModuleName -> ProperName -> [(String, Maybe Kind)] -> [Type] -> Check Kind Source
Infer the kind of a type constructor with a collection of arguments and a collection of associated data constructors
kindsOfAll :: ModuleName -> [(ProperName, [(String, Maybe Kind)], Type)] -> [(ProperName, [(String, Maybe Kind)], [Type])] -> Check ([Kind], [Kind]) Source
Simultaneously infer the kinds of several mutually recursive type constructors