Safe Haskell | None |
---|---|
Language | Haskell98 |
- class VarLookup m k v where
- varlookupWithMetaLev :: MetaLev -> k -> m -> Maybe v
- varlookup :: k -> m -> Maybe v
- varlookupMap :: VarLookup m k v => (v -> Maybe res) -> k -> m -> Maybe res
- type VarLookupFix k v = k -> Maybe v
- varlookupFix :: VarLookup m k v => m -> VarLookupFix k v
- varlookupFixDel :: Ord k => [k] -> VarLookupFix k v -> VarLookupFix k v
- class VarLookupCmb m1 m2 where
- (|+>) :: m1 -> m2 -> m2
- class VarLookupBase m k v | m -> k v where
- varlookupEmpty :: m
- type VarLookupCmbFix m1 m2 = m1 -> m2 -> m2
- varlookupcmbFix :: VarLookupCmb m1 m2 => VarLookupCmbFix m1 m2
- type MetaLev = Int
- metaLevVal :: MetaLev
Documentation
class VarLookup m k v where Source
VarLookup abstracts from a Map. The purpose is to be able to combine maps only for the purpose of searching without actually merging the maps. This then avoids the later need to unmerge such mergings. The class interface serves to hide this.
varlookupMap :: VarLookup m k v => (v -> Maybe res) -> k -> m -> Maybe res Source
type VarLookupFix k v = k -> Maybe v Source
varlookupFix :: VarLookup m k v => m -> VarLookupFix k v Source
fix looking up to be for a certain var mapping
varlookupFixDel :: Ord k => [k] -> VarLookupFix k v -> VarLookupFix k v Source
simulate deletion
class VarLookupCmb m1 m2 where Source
VarLookupCmb abstracts the combining
of/from a substitution.
The interface goes along with VarLookup but is split off to avoid functional dependency restrictions.
The purpose is to be able to combine maps only for the purpose of searching without actually merging the maps.
This then avoids the later need to unmerge such mergings.
VarLookupCmb m1 m2 => VarLookupCmb m1 [m2] | |
(VarLookupCmb m1 m1, VarLookupCmb m1 m2) => VarLookupCmb [m1] [m2] | |
Ord k => VarLookupCmb (VarMpStk' k v) (VarMpStk' k v) | |
Ord k => VarLookupCmb (VarMp' k v) (VarMp' k v) |
class VarLookupBase m k v | m -> k v where Source
varlookupEmpty :: m Source
VarLookupBase (VarMp' k v) k v |
type VarLookupCmbFix m1 m2 = m1 -> m2 -> m2 Source
varlookupcmbFix :: VarLookupCmb m1 m2 => VarLookupCmbFix m1 m2 Source
fix combining up to be for a certain var mapping
Base level (of values, usually)