|
Data.Generics.Strafunski.StrategyLib.ContainerTheme | Portability | portable | Stability | experimental | Maintainer | Ralf Laemmel, Joost Visser |
|
|
|
|
|
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 |