|
|
|
| Description |
| Warning: there are a bunch of comments on the positional fields
of constructors in this module (perhaps the constructors should be
record constructors so that they can have docstrings on their
fields?)
|
|
| Synopsis |
|
|
|
| Documentation |
|
| data NT |
| Constructors | | NTany Id | can be instantiated with unboxed
(needed during type checking)
| | NTvar Id Kind | | | NTexist Id Kind | | | NTstrict NT | | | NTapp NT NT | | | NTcons Id Kind [NT] | combines constructor + application
| | NTcontext Id Id | context (class, type variable)
purpose here completely unclear (used?)
|
| Instances | |
|
|
| data NewType |
| Perhaps NewType is a type schema? It quantifies variables over
an arrow of NTs.
| | Constructors | | Instances | |
|
|
| data Kind |
| Constructors | | Instances | |
|
|
| mkNTvar :: Id -> NT |
|
| mkNTexist :: Id -> NT |
|
| mkNTcons :: Id -> [NT] -> NT |
|
| anyNT :: [Id] -> NT -> NT |
|
| consNT :: NT -> [Id] |
| Determine the type constructors that occur in the given type
|
|
| freeNT :: NT -> [Id] |
| Determine type variables that occur in given type.
|
|
| freshNT :: (Id -> Id) -> NT -> NT |
| Exchange type variables according to given mapping in given type.
(not existentially quantified vars.
|
|
| polyNT :: [Id] -> NT -> NT |
|
| strTVar :: Id -> String |
|
| sndNTvar :: (a, Id) -> (a, NT) |
|
| strNT :: (Id -> String) -> (Id -> String) -> NT -> String |
| Show function for NT, parameterised by show functions for
constructors/class names and for type variables.
|
|
| strictNT :: NT -> Bool |
|
| transCtxs :: (a -> b) -> (c -> d) -> [(c, a)] -> [(d, b)] |
| FIXME: Isn't this type a tad more general than appropriate for the name?
|
|
| useNT :: NT -> [Id] |
| Same as consNT except that constructor from NTcontext goes also into result.
used only in module Export
|
|
| contextNT :: NT -> Bool |
|
| ntContext2Pair :: NT -> (Id, Id) |
|
| stripNT :: NT -> Id |
|
| anyVarNT :: NT -> Maybe Id |
|
| Produced by Haddock version 0.8 |