Control.Arrow.ListArrow

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

Copyright | Copyright (C) 2005 Uwe Schmidt
License | MIT
Maintainer | Uwe Schmidt (uwe\@fh-wedel.de)
Stability | experimental
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Control.Arrow.ListArrow

Description

Implementation of pure list arrows

Synopsis

- newtype LA a b = LA {
  - runLA :: a -> [b]
  }
- fromLA :: ArrowList a => LA b c -> a b c

# Documentation

newtype LA a b #

pure list arrow data type

Constructors

LA |
Fields runLA :: a -> [b]

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 # |
Methods isDTDDoctype :: LA XmlTree XmlTree # isDTDElement :: LA XmlTree XmlTree # isDTDContent :: LA XmlTree XmlTree # isDTDAttlist :: LA XmlTree XmlTree # isDTDEntity :: LA XmlTree XmlTree # isDTDPEntity :: LA XmlTree XmlTree # isDTDNotation :: LA XmlTree XmlTree # isDTDCondSect :: LA XmlTree XmlTree # isDTDName :: LA XmlTree XmlTree # isDTDPERef :: LA XmlTree XmlTree # hasDTDAttr :: String -> LA XmlTree XmlTree # getDTDAttrValue :: String -> LA XmlTree String # setDTDAttrValue :: String -> String -> LA XmlTree XmlTree # mkDTDElem :: DTDElem -> Attributes -> LA n XmlTree -> LA n XmlTree # mkDTDDoctype :: Attributes -> LA n XmlTree -> LA n XmlTree # mkDTDElement :: Attributes -> LA n XmlTree # mkDTDEntity :: Attributes -> LA n XmlTree # mkDTDPEntity :: Attributes -> LA n XmlTree #
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