Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data TypeAtom
- data TypeExp
- fromType :: Type -> Q TypeExp
- fromName :: Name -> Q TypeExp
- substitute :: Name -> TypeExp -> TypeExp -> TypeExp
- substituteAll :: Map Name TypeExp -> TypeExp -> TypeExp
- reduce :: TypeExp -> TypeExp
- match :: TypeExp -> TypeExp -> Maybe (Map Name TypeExp)
- familyExp :: Int -> ([TypeExp] -> TypeExp) -> TypeExp
Documentation
Type atom
Type expression
fromType :: Type -> Q TypeExp Source #
Get the type expression for a Type
. Attempts to reduce the resulting type expression.
fromName :: Name -> Q TypeExp Source #
Get the type expression for a Name
. Attempts to reduce the resulting type expression.
substitute :: Name -> TypeExp -> TypeExp -> TypeExp Source #
substitute name typ exp
replaces all occurences of name
in exp
with typ
.
substituteAll :: Map Name TypeExp -> TypeExp -> TypeExp Source #
Just like substitute
but for more variables.