Safe Haskell | Safe |
---|---|
Language | Haskell98 |
DDC.Core.Collect
Description
Collecting sets of variables and constructors.
- freeT :: (BindStruct c n, Ord n) => Env n -> c -> Set (Bound n)
- freeVarsT :: Ord n => KindEnv n -> Type n -> Set (Bound n)
- freeX :: (BindStruct c n, Ord n) => Env n -> c -> Set (Bound n)
- collectBound :: (BindStruct c n, Ord n) => c -> Set (Bound n)
- collectBinds :: (BindStruct c n, Ord n) => c -> ([Bind n], [Bind n])
- data BindTree n
- data BindWay
- data BoundLevel
- class BindStruct c n | c -> n where
- data Support n = Support {
- supportTyCon :: Set (Bound n)
- supportTyConXArg :: Set (Bound n)
- supportSpVar :: Set (Bound n)
- supportSpVarXArg :: Set (Bound n)
- supportWiVar :: Set (Bound n)
- supportDaVar :: Set (Bound n)
- class SupportX c where
Free Variables
freeT :: (BindStruct c n, Ord n) => Env n -> c -> Set (Bound n) Source #
Collect the free Spec variables in a thing (level-1).
freeVarsT :: Ord n => KindEnv n -> Type n -> Set (Bound n) Source #
Collect the free type variables in a type.
freeX :: (BindStruct c n, Ord n) => Env n -> c -> Set (Bound n) Source #
Collect the free Data and Witness variables in a thing (level-0).
Bounds and Binds
collectBound :: (BindStruct c n, Ord n) => c -> Set (Bound n) Source #
Collect all the bound variables in a thing, independent of whether they are free or not.
collectBinds :: (BindStruct c n, Ord n) => c -> ([Bind n], [Bind n]) Source #
Collect all the spec and exp binders in a thing.
Abstract Binding Structures
A description of the binding structure of some type or expression.
Describes how a variable was bound.
class BindStruct c n | c -> n where Source #
Minimal complete definition
Methods
slurpBindTree :: c -> [BindTree n] Source #
Support
Constructors
Support | |
Fields
|