-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Some simple functions to deal with transformations from structures to other ones, basically lists.
--
-- The function mapI is taken from the mmsyn5 package. This
-- inspired some more general functionality.
@package intermediate-structures
@version 0.1.1.0
-- | Some simple functions to deal with transformations from structures to
-- other ones, basically lists.
--
-- The function mapI is taken from the mmsyn5 package. This
-- inspired some more general functionality.
module Data.IntermediateStructures1
-- | Function that applies additional function f :: a -> [a] to
-- a if p :: a -> Bool and p a = True
mapI :: (a -> Bool) -> (a -> [a]) -> [a] -> [a]
-- | Function that applies additional function f :: a -> [[a]]
-- to a if p :: a -> Bool and p a = True
map2I :: (a -> Bool) -> (a -> [[a]]) -> [a] -> [a]
-- | Some general transformation where the arguments that are not present
-- are calculated from the one data argument a being just
-- present. Can be used to contstruct function a -> d from
-- some additional ideas.
inter :: (a -> b) -> (a -> c) -> (a -> b -> c -> d) -> a -> d
-- | A variant of inter with 'stricter' calculation scheme. Can be
-- in many cases more efficient.
inter' :: (a -> b) -> (a -> c) -> (a -> b -> c -> d) -> a -> d
-- | A variant of the inter with swapped two first arguments. The
-- following takes place: > swapinter f g == inter g f
swapinter :: (a -> c) -> (a -> b) -> (a -> b -> c -> d) -> a -> d
-- | A variant of the swapinter with 'stricter' calculation scheme.
-- Can be in many cases more efficient.
swapinter' :: (a -> c) -> (a -> b) -> (a -> b -> c -> d) -> a -> d