Copyright | (c) 2016 Finn Teegen |
---|---|
License | BSD-3-clause |
Maintainer | bjp@informatik.uni-kiel.de |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module implements expansion of alias types in types and predicates.
Documentation
expandType :: ModuleIdent -> TCEnv -> Type -> Type Source #
expandType' :: ModuleIdent -> TCEnv -> Type -> [Type] -> Type Source #
expandPred :: ModuleIdent -> TCEnv -> Pred -> Pred Source #
expandPredSet :: ModuleIdent -> TCEnv -> ClassEnv -> PredSet -> PredSet Source #
expandPredType :: ModuleIdent -> TCEnv -> ClassEnv -> PredType -> PredType Source #
expandMonoType :: ModuleIdent -> TCEnv -> [Ident] -> TypeExpr -> Type Source #
expandPolyType :: ModuleIdent -> TCEnv -> ClassEnv -> QualTypeExpr -> PredType Source #
expandConstrType :: ModuleIdent -> TCEnv -> ClassEnv -> QualIdent -> [Ident] -> [TypeExpr] -> PredType Source #
expandMethodType :: ModuleIdent -> TCEnv -> ClassEnv -> QualIdent -> Ident -> QualTypeExpr -> PredType Source #