Safe Haskell | None |
---|
- 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 whereSource
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 resSource
type VarLookupFix k v = k -> Maybe vSource
varlookupFix :: VarLookup m k v => m -> VarLookupFix k vSource
fix looking up to be for a certain var mapping
varlookupFixDel :: Ord k => [k] -> VarLookupFix k v -> VarLookupFix k vSource
simulate deletion
class VarLookupCmb m1 m2 whereSource
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 whereSource
varlookupEmpty :: mSource
VarLookupBase (VarMp' k v) k v |
type VarLookupCmbFix m1 m2 = m1 -> m2 -> m2Source
varlookupcmbFix :: VarLookupCmb m1 m2 => VarLookupCmbFix m1 m2Source
fix combining up to be for a certain var mapping
Base level (of values, usually)