Safe Haskell | None |
---|---|
Language | Haskell98 |
- class VarUpdatable vv subst where
- varUpd :: subst -> vv -> vv
- varUpdCyc :: subst -> vv -> (vv, VarMp' (VarLookupKey subst) (VarLookupVal subst))
- class Ord (ExtrValVarKey vv) => VarExtractable vv where
- varFree :: vv -> [ExtrValVarKey vv]
- varFreeSet :: vv -> Set (ExtrValVarKey vv)
- type family ExtrValVarKey vv :: *
- class VarTerm vv where
- varTermMbKey :: vv -> Maybe (ExtrValVarKey vv)
- varTermMkKey :: ExtrValVarKey vv -> vv
Documentation
class VarUpdatable vv subst where Source
Term in which variables can be updated with a subst(itution)
varUpd :: subst -> vv -> vv infixr 6 Source
Update
varUpdCyc :: subst -> vv -> (vv, VarMp' (VarLookupKey subst) (VarLookupVal subst)) infixr 6 Source
Update with cycle detection
(Ord (VarLookupKey subst), VarUpdatable vv subst) => VarUpdatable [vv] subst Source | |
VarUpdatable vv subst => VarUpdatable (Maybe vv) subst Source | |
(VarUpdatable c s, VarUpdatable p s) => VarUpdatable (RuleBodyAlt c p) s Source | |
(VarUpdatable c s, VarUpdatable g s, VarUpdatable bp s, VarUpdatable p s) => VarUpdatable (Rule c g bp p) s Source |
class Ord (ExtrValVarKey vv) => VarExtractable vv where Source
Term from which free variables can be extracted
Nothing
varFree :: vv -> [ExtrValVarKey vv] Source
Free vars, as a list
varFreeSet :: vv -> Set (ExtrValVarKey vv) Source
Free vars, as a set
(VarExtractable vv, Ord (ExtrValVarKey vv)) => VarExtractable [vv] Source | |
(VarExtractable vv, Ord (ExtrValVarKey vv)) => VarExtractable (Maybe vv) Source | |
VarExtractable c => VarExtractable (RuleBodyAlt c p) Source | |
(VarExtractable c, VarExtractable g, (~) * (ExtrValVarKey c) (ExtrValVarKey g)) => VarExtractable (Rule c g bp p) Source |
type family ExtrValVarKey vv :: * Source
The variable wich is used as a key into a substitution
type ExtrValVarKey [vv] = ExtrValVarKey vv Source | |
type ExtrValVarKey (Maybe vv) = ExtrValVarKey vv Source | |
type ExtrValVarKey (RuleBodyAlt c p) = ExtrValVarKey c Source | |
type ExtrValVarKey (Rule c g bp p) = ExtrValVarKey c Source |
Term with a (substitutable, extractable, free, etc.) variable
varTermMbKey :: vv -> Maybe (ExtrValVarKey vv) Source
Maybe is a key
varTermMkKey :: ExtrValVarKey vv -> vv Source
Construct wrapper for key (i.e. lift, embed)