Safe Haskell | None |
---|---|
Language | Haskell98 |
- class VarUpdatable vv subst where
- varUpd :: subst -> vv -> vv
- varUpdCyc :: subst -> vv -> (vv, VarMp' (SubstVarKey subst) (SubstVarVal subst))
- class Ord (ExtrValVarKey vv) => VarExtractable vv where
- varFree :: vv -> [ExtrValVarKey vv]
- varFreeSet :: vv -> Set (ExtrValVarKey vv)
- type family SubstVarKey subst :: *
- type family SubstVarVal subst :: *
- type family ExtrValVarKey vv :: *
Documentation
class VarUpdatable vv subst where Source
varUpd :: subst -> vv -> vv infixr 6 Source
varUpdCyc :: subst -> vv -> (vv, VarMp' (SubstVarKey subst) (SubstVarVal subst)) infixr 6 Source
VarUpdatable (CHRGuard env subst) subst Source | |
VarUpdatable (CHRConstraint env subst) subst Source | |
(VarUpdatable c s, VarUpdatable g s) => VarUpdatable (Rule c g p) s Source |
class Ord (ExtrValVarKey vv) => VarExtractable vv where Source
Nothing
varFree :: vv -> [ExtrValVarKey vv] Source
varFreeSet :: vv -> Set (ExtrValVarKey vv) Source
Ord (ExtrValVarKey (CHRGuard env subst)) => VarExtractable (CHRGuard env subst) Source | |
Ord (ExtrValVarKey (CHRConstraint env subst)) => VarExtractable (CHRConstraint env subst) Source | |
(VarExtractable c, VarExtractable g, (~) * (ExtrValVarKey c) (ExtrValVarKey g)) => VarExtractable (Rule c g p) Source |
type family SubstVarKey subst :: * Source
Invariant: SubstVarKey subst = ExtrValVarKey (SubstVarVal subst)
type family SubstVarVal subst :: * Source
type family ExtrValVarKey vv :: * Source
type ExtrValVarKey [vv] = ExtrValVarKey vv Source | |
type ExtrValVarKey (Rule c g p) = ExtrValVarKey c Source |