hxt-9.3.1.16: A collection of tools for processing XML with Haskell.

CopyrightCopyright (C) 2005 Uwe Schmidt
LicenseMIT
MaintainerUwe Schmidt (uwe\@fh-wedel.de)
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Control.Arrow.ListArrow

Description

Implementation of pure list arrows

Synopsis

Documentation

newtype LA a b #

pure list arrow data type

Constructors

LA 

Fields

Instances

Arrow LA # 

Methods

arr :: (b -> c) -> LA b c #

first :: LA b c -> LA (b, d) (c, d) #

second :: LA b c -> LA (d, b) (d, c) #

(***) :: LA b c -> LA b' c' -> LA (b, b') (c, c') #

(&&&) :: LA b c -> LA b c' -> LA b (c, c') #

ArrowZero LA # 

Methods

zeroArrow :: LA b c #

ArrowPlus LA # 

Methods

(<+>) :: LA b c -> LA b c -> LA b c #

ArrowChoice LA # 

Methods

left :: LA b c -> LA (Either b d) (Either c d) #

right :: LA b c -> LA (Either d b) (Either d c) #

(+++) :: LA b c -> LA b' c' -> LA (Either b b') (Either c c') #

(|||) :: LA b d -> LA c d -> LA (Either b c) d #

ArrowApply LA # 

Methods

app :: LA (LA b c, b) c #

ArrowList LA # 

Methods

arr2 :: (b1 -> b2 -> c) -> LA (b1, b2) c #

arr3 :: (b1 -> b2 -> b3 -> c) -> LA (b1, (b2, b3)) c #

arr4 :: (b1 -> b2 -> b3 -> b4 -> c) -> LA (b1, (b2, (b3, b4))) c #

arr2A :: (b -> LA c d) -> LA (b, c) d #

arrL :: (b -> [c]) -> LA b c #

arr2L :: (b -> c -> [d]) -> LA (b, c) d #

constA :: c -> LA b c #

constL :: [c] -> LA b c #

isA :: (b -> Bool) -> LA b b #

(>>.) :: LA b c -> ([c] -> [d]) -> LA b d #

(>.) :: LA b c -> ([c] -> d) -> LA b d #

listA :: LA b c -> LA b [c] #

unlistA :: LA [b] b #

this :: LA b b #

none :: LA b c #

withDefault :: LA b c -> c -> LA b c #

single :: LA b c -> LA b c #

applyA :: LA b (LA b c) -> LA b c #

($<) :: (c -> LA b d) -> LA b c -> LA b d #

($<<) :: (c1 -> c2 -> LA b d) -> LA b (c1, c2) -> LA b d #

($<<<) :: (c1 -> c2 -> c3 -> LA b d) -> LA b (c1, (c2, c3)) -> LA b d #

($<<<<) :: (c1 -> c2 -> c3 -> c4 -> LA b d) -> LA b (c1, (c2, (c3, c4))) -> LA b d #

($<$) :: (c -> LA b b) -> LA b c -> LA b b #

mergeA :: (LA (a1, b1) a1 -> LA (a1, b1) b1 -> LA (a1, b1) c) -> LA (a1, b1) c #

perform :: LA b c -> LA b b #

catA :: [LA b c] -> LA b c #

seqA :: [LA b b] -> LA b b #

ArrowWNF LA # 

Methods

rwnfA :: WNFData c => LA b c -> LA b c #

rwnf2A :: WNFData c => LA b c -> LA b c #

ArrowNF LA # 

Methods

rnfA :: NFData c => LA b c -> LA b c #

ArrowIf LA # 

Methods

ifA :: LA b c -> LA b d -> LA b d -> LA b d #

ifP :: (b -> Bool) -> LA b d -> LA b d -> LA b d #

neg :: LA b c -> LA b b #

when :: LA b b -> LA b c -> LA b b #

whenP :: LA b b -> (b -> Bool) -> LA b b #

whenNot :: LA b b -> LA b c -> LA b b #

whenNotP :: LA b b -> (b -> Bool) -> LA b b #

guards :: LA b c -> LA b d -> LA b d #

guardsP :: (b -> Bool) -> LA b d -> LA b d #

filterA :: LA b c -> LA b b #

containing :: LA b c -> LA c d -> LA b c #

notContaining :: LA b c -> LA c d -> LA b c #

orElse :: LA b c -> LA b c -> LA b c #

choiceA :: [IfThen (LA b c) (LA b d)] -> LA b d #

tagA :: LA b c -> LA b (Either b b) #

spanA :: LA b b -> LA [b] ([b], [b]) #

partitionA :: LA b b -> LA [b] ([b], [b]) #

ArrowNavigatableTree LA # 

Methods

moveUp :: NavigatableTree t => LA (t b) (t b) #

moveDown :: NavigatableTree t => LA (t b) (t b) #

moveLeft :: NavigatableTree t => LA (t b) (t b) #

moveRight :: NavigatableTree t => LA (t b) (t b) #

ArrowTree LA # 

Methods

mkLeaf :: Tree t => b -> LA c (t b) #

mkTree :: Tree t => b -> [t b] -> LA c (t b) #

getChildren :: Tree t => LA (t b) (t b) #

getNode :: Tree t => LA (t b) b #

hasNode :: Tree t => (b -> Bool) -> LA (t b) (t b) #

setChildren :: Tree t => [t b] -> LA (t b) (t b) #

setNode :: Tree t => b -> LA (t b) (t b) #

changeChildren :: Tree t => ([t b] -> [t b]) -> LA (t b) (t b) #

changeNode :: Tree t => (b -> b) -> LA (t b) (t b) #

processChildren :: Tree t => LA (t b) (t b) -> LA (t b) (t b) #

replaceChildren :: Tree t => LA (t b) (t b) -> LA (t b) (t b) #

(/>) :: Tree t => LA b (t c) -> LA (t c) d -> LA b d #

(//>) :: Tree t => LA b (t c) -> LA (t c) d -> LA b d #

(</) :: Tree t => LA (t b) (t b) -> LA (t b) (t b) -> LA (t b) (t b) #

deep :: Tree t => LA (t b) c -> LA (t b) c #

deepest :: Tree t => LA (t b) c -> LA (t b) c #

multi :: Tree t => LA (t b) c -> LA (t b) c #

processBottomUp :: Tree t => LA (t b) (t b) -> LA (t b) (t b) #

processTopDown :: Tree t => LA (t b) (t b) -> LA (t b) (t b) #

processBottomUpWhenNot :: Tree t => LA (t b) (t b) -> LA (t b) (t b) -> LA (t b) (t b) #

processTopDownUntil :: Tree t => LA (t b) (t b) -> LA (t b) (t b) #

insertChildrenAt :: Tree t => Int -> LA (t b) (t b) -> LA (t b) (t b) #

insertChildrenAfter :: Tree t => LA (t b) (t b) -> LA (t b) (t b) -> LA (t b) (t b) #

insertTreeTemplate :: Tree t => LA (t b) (t b) -> [IfThen (LA (t b) c) (LA (t b) (t b))] -> LA (t b) (t b) #

ArrowDTD LA # 
ArrowXml LA # 

Methods

isText :: LA XmlTree XmlTree #

isBlob :: LA XmlTree XmlTree #

isCharRef :: LA XmlTree XmlTree #

isEntityRef :: LA XmlTree XmlTree #

isCmt :: LA XmlTree XmlTree #

isCdata :: LA XmlTree XmlTree #

isPi :: LA XmlTree XmlTree #

isXmlPi :: LA XmlTree XmlTree #

isElem :: LA XmlTree XmlTree #

isDTD :: LA XmlTree XmlTree #

isAttr :: LA XmlTree XmlTree #

isError :: LA XmlTree XmlTree #

isRoot :: LA XmlTree XmlTree #

hasText :: (String -> Bool) -> LA XmlTree XmlTree #

isWhiteSpace :: LA XmlTree XmlTree #

hasNameWith :: (QName -> Bool) -> LA XmlTree XmlTree #

hasQName :: QName -> LA XmlTree XmlTree #

hasName :: String -> LA XmlTree XmlTree #

hasLocalPart :: String -> LA XmlTree XmlTree #

hasNamePrefix :: String -> LA XmlTree XmlTree #

hasNamespaceUri :: String -> LA XmlTree XmlTree #

hasAttr :: String -> LA XmlTree XmlTree #

hasQAttr :: QName -> LA XmlTree XmlTree #

hasAttrValue :: String -> (String -> Bool) -> LA XmlTree XmlTree #

hasQAttrValue :: QName -> (String -> Bool) -> LA XmlTree XmlTree #

mkText :: LA String XmlTree #

mkBlob :: LA Blob XmlTree #

mkCharRef :: LA Int XmlTree #

mkEntityRef :: LA String XmlTree #

mkCmt :: LA String XmlTree #

mkCdata :: LA String XmlTree #

mkError :: Int -> LA String XmlTree #

mkElement :: QName -> LA n XmlTree -> LA n XmlTree -> LA n XmlTree #

mkAttr :: QName -> LA n XmlTree -> LA n XmlTree #

mkPi :: QName -> LA n XmlTree -> LA n XmlTree #

mkqelem :: QName -> [LA n XmlTree] -> [LA n XmlTree] -> LA n XmlTree #

mkelem :: String -> [LA n XmlTree] -> [LA n XmlTree] -> LA n XmlTree #

aelem :: String -> [LA n XmlTree] -> LA n XmlTree #

selem :: String -> [LA n XmlTree] -> LA n XmlTree #

eelem :: String -> LA n XmlTree #

root :: [LA n XmlTree] -> [LA n XmlTree] -> LA n XmlTree #

qattr :: QName -> LA n XmlTree -> LA n XmlTree #

attr :: String -> LA n XmlTree -> LA n XmlTree #

txt :: String -> LA n XmlTree #

blb :: Blob -> LA n XmlTree #

charRef :: Int -> LA n XmlTree #

entityRef :: String -> LA n XmlTree #

cmt :: String -> LA n XmlTree #

warn :: String -> LA n XmlTree #

err :: String -> LA n XmlTree #

fatal :: String -> LA n XmlTree #

spi :: String -> String -> LA n XmlTree #

sqattr :: QName -> String -> LA n XmlTree #

sattr :: String -> String -> LA n XmlTree #

getText :: LA XmlTree String #

getCharRef :: LA XmlTree Int #

getEntityRef :: LA XmlTree String #

getCmt :: LA XmlTree String #

getCdata :: LA XmlTree String #

getPiName :: LA XmlTree QName #

getPiContent :: LA XmlTree XmlTree #

getElemName :: LA XmlTree QName #

getAttrl :: LA XmlTree XmlTree #

getDTDPart :: LA XmlTree DTDElem #

getDTDAttrl :: LA XmlTree Attributes #

getAttrName :: LA XmlTree QName #

getErrorLevel :: LA XmlTree Int #

getErrorMsg :: LA XmlTree String #

getQName :: LA XmlTree QName #

getName :: LA XmlTree String #

getUniversalName :: LA XmlTree String #

getUniversalUri :: LA XmlTree String #

getLocalPart :: LA XmlTree String #

getNamePrefix :: LA XmlTree String #

getNamespaceUri :: LA XmlTree String #

getAttrValue :: String -> LA XmlTree String #

getAttrValue0 :: String -> LA XmlTree String #

getQAttrValue :: QName -> LA XmlTree String #

getQAttrValue0 :: QName -> LA XmlTree String #

changeText :: (String -> String) -> LA XmlTree XmlTree #

changeBlob :: (Blob -> Blob) -> LA XmlTree XmlTree #

changeCmt :: (String -> String) -> LA XmlTree XmlTree #

changeQName :: (QName -> QName) -> LA XmlTree XmlTree #

changeElemName :: (QName -> QName) -> LA XmlTree XmlTree #

changeAttrName :: (QName -> QName) -> LA XmlTree XmlTree #

changePiName :: (QName -> QName) -> LA XmlTree XmlTree #

changeAttrValue :: (String -> String) -> LA XmlTree XmlTree #

changeAttrl :: (XmlTrees -> XmlTrees -> XmlTrees) -> LA XmlTree XmlTree -> LA XmlTree XmlTree #

setQName :: QName -> LA XmlTree XmlTree #

setElemName :: QName -> LA XmlTree XmlTree #

setAttrName :: QName -> LA XmlTree XmlTree #

setPiName :: QName -> LA XmlTree XmlTree #

setAttrl :: LA XmlTree XmlTree -> LA XmlTree XmlTree #

addAttrl :: LA XmlTree XmlTree -> LA XmlTree XmlTree #

addAttr :: String -> String -> LA XmlTree XmlTree #

removeAttr :: String -> LA XmlTree XmlTree #

removeQAttr :: QName -> LA XmlTree XmlTree #

processAttrl :: LA XmlTree XmlTree -> LA XmlTree XmlTree #

processTopDownWithAttrl :: LA XmlTree XmlTree -> LA XmlTree XmlTree #

(+=) :: LA b XmlTree -> LA b XmlTree -> LA b XmlTree #

xshow :: LA n XmlTree -> LA n String #

xshowBlob :: LA n XmlTree -> LA n Blob #

Category * LA # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

fromLA :: ArrowList a => LA b c -> a b c #

conversion of pure list arrows into other possibly more complex list arrows