citeproc-hs-0.3.8: A Citation Style Language implementation in Haskell

Portabilityportable
Stabilityunstable
MaintainerAndrea Rossato <andrea.rossato@unitn.it>
Safe HaskellNone

Text.CSL.Pickle

Description

This module is mostly copied from Text.XML.HXT.Arrow.Pickle.Xml which is an adaptation of the pickler combinators developed by Andrew Kennedy.

See: http://research.microsoft.com/~akenn/fun/picklercombinators.pdf

Synopsis

Documentation

data St

Constructors

St 

Fields

attributes :: [Attr]
 
contents :: [Content]
 

data PU a

Constructors

PU 

Fields

appPickle :: (a, St) -> St
 
appUnPickle :: St -> (Maybe a, St)
 

pickleXML :: PU a -> a -> String

unpickleXML :: PU a -> [Content] -> Maybe a

addAtt :: Attr -> St -> St

addCont :: Content -> St -> St

dropCont :: St -> St

xpPrim :: (Read a, Show a) => PU a

xpUnit :: PU ()

xpZero :: PU a

xpLift :: a -> PU a

xpCondSeq :: PU b -> (b -> a) -> PU a -> (a -> PU b) -> PU b

xpSeq :: (b -> a) -> PU a -> (a -> PU b) -> PU b

xpChoice :: PU b -> PU a -> (a -> PU b) -> PU b

xpWrap :: (a -> b, b -> a) -> PU a -> PU b

xpDefault :: Eq a => a -> PU a -> PU a

xpOption :: PU a -> PU (Maybe a)

xpAlt :: (a -> Int) -> [PU a] -> PU a

xpList :: PU a -> PU [a]

xpLiftMaybe :: Maybe a -> PU a

xpWrapMaybe :: (a -> Maybe b, b -> a) -> PU a -> PU b

xpPair :: PU a -> PU b -> PU (a, b)

xpTriple :: PU a -> PU b -> PU c -> PU (a, b, c)

xp4Tuple :: PU a -> PU b -> PU c -> PU d -> PU (a, b, c, d)

xp5Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)

xp6Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)

xpElem :: String -> PU a -> PU a

xpIElem :: String -> PU a -> PU a

A pickler for interleaved elements.

xpAttr :: String -> PU a -> PU a

xpAddFixedAttr :: String -> String -> PU a -> PU a

uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d

uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e

uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f

readXmlString :: Show a => PU a -> ByteString -> a

readXmlFile :: Show a => PU a -> FilePath -> IO a