StrategyLib-4.0.0.0ContentsIndex
Data.Generics.Strafunski.StrategyLib.ContainerTheme
Portabilityportable
Stabilityexperimental
MaintainerRalf Laemmel, Joost Visser
Contents
Pointwise function update
Generic Set (not observable)
Generic Map (not observable)
Description
This module is part of StrategyLib, a library of functional strategy combinators, including combinators for generic traversal. This module provides combinators which allow one to use strategies to construct generic containers.
Synopsis
modify :: Eq x => (x -> y) -> x -> y -> x -> y
modifyTP :: (MonadPlus m, Eq t, Term t) => TP m -> t -> m t -> TP m
modifyTU :: (MonadPlus m, Eq t, Term t) => TU a m -> t -> m a -> TU a m
type GSet = TU () Maybe
emptyGSet :: GSet
fullGSet :: GSet
addGSet :: (Eq t, Term t) => t -> GSet -> GSet
removeGSet :: (Eq t, Term t) => t -> GSet -> GSet
containsGSet :: (Eq t, Term t) => t -> GSet -> Bool
type GMap value = TU value Maybe
emptyGMap :: GMap v
removeGMap :: (Eq t, Term t) => t -> GMap v -> GMap v
containsGMap :: (Eq t, Term t) => t -> GMap v -> Bool
putGMap :: (Eq t, Term t) => t -> v -> GMap v -> GMap v
getGMap :: (Eq t, Term t) => t -> GMap v -> Maybe v
type GList = (Integer -> TP Maybe, Integer)
emptyGList :: GList
addGList :: Term t => t -> GList -> GList
putGList :: Term t => Integer -> t -> GList -> GList
getGList :: Term t => Integer -> GList -> Maybe t
mapGListTP :: TP Maybe -> GList -> GList
mapGListTU :: Term t => (t -> ()) -> TU a Maybe -> GList -> [Maybe a]
elemsGList :: Term t => (t -> ()) -> GList -> [t]
nth :: [a] -> Integer -> a
type Coder = (Int, TU Int Maybe)
noCode :: Coder
getCode :: Term x => Coder -> x -> Maybe Int
setCode :: (Term x, Eq x) => Coder -> x -> Int -> Coder
nextCode :: Coder -> (Int, Coder)
enCode :: (Term x, Eq x) => Coder -> x -> Coder
Pointwise function update
modify :: Eq x => (x -> y) -> x -> y -> x -> y
Pointwise modification of monomorphic functions
modifyTP :: (MonadPlus m, Eq t, Term t) => TP m -> t -> m t -> TP m
Pointwise modification of type-preserving strategies
modifyTU :: (MonadPlus m, Eq t, Term t) => TU a m -> t -> m a -> TU a m
Pointwise modification of type-unifying strategies
Generic Set (not observable)
type GSet = TU () Maybe
Type of generic sets
emptyGSet :: GSet
Empty generic set.
fullGSet :: GSet
Completely filled generic set
addGSet :: (Eq t, Term t) => t -> GSet -> GSet
Add an element to a generic set
removeGSet :: (Eq t, Term t) => t -> GSet -> GSet
Remove an element from a generic set
containsGSet :: (Eq t, Term t) => t -> GSet -> Bool
Test whether a given element is contained in a generic set
Generic Map (not observable)
type GMap value = TU value Maybe
Type of generic maps
emptyGMap :: GMap v
Empty generic map
removeGMap :: (Eq t, Term t) => t -> GMap v -> GMap v
Remove an element from a generic map (my key)
containsGMap :: (Eq t, Term t) => t -> GMap v -> Bool
Test whether an element with given key is contained in a generic map
putGMap :: (Eq t, Term t) => t -> v -> GMap v -> GMap v
Add an entry with given key and value to a generic map
getGMap :: (Eq t, Term t) => t -> GMap v -> Maybe v
Obtain the value for a given key from a generic map
type GList = (Integer -> TP Maybe, Integer)
emptyGList :: GList
addGList :: Term t => t -> GList -> GList
putGList :: Term t => Integer -> t -> GList -> GList
getGList :: Term t => Integer -> GList -> Maybe t
mapGListTP :: TP Maybe -> GList -> GList
mapGListTU :: Term t => (t -> ()) -> TU a Maybe -> GList -> [Maybe a]
elemsGList :: Term t => (t -> ()) -> GList -> [t]
nth :: [a] -> Integer -> a
type Coder = (Int, TU Int Maybe)
noCode :: Coder
getCode :: Term x => Coder -> x -> Maybe Int
setCode :: (Term x, Eq x) => Coder -> x -> Int -> Coder
nextCode :: Coder -> (Int, Coder)
enCode :: (Term x, Eq x) => Coder -> x -> Coder
Produced by Haddock version 0.8