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

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

Control.Arrow.ArrowNF

Description

Arrows for evaluation of normal form results

Synopsis

Documentation

strictA :: (Arrow a, NFData b) => a b b Source #

complete evaluation of an arrow result using DeepSeq

this is sometimes useful for preventing space leaks, especially after reading and validation of a document, all DTD stuff is not longer in use and can be recycled by the GC.

class Arrow a => ArrowNF a where Source #

Minimal complete definition

Nothing

Methods

rnfA :: NFData c => a b c -> a b c Source #

Instances
ArrowNF LA Source # 
Instance details

Defined in Control.Arrow.ListArrow

Methods

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

ArrowNF IOLA Source # 
Instance details

Defined in Control.Arrow.IOListArrow

Methods

rnfA :: NFData c => IOLA b c -> IOLA b c Source #

ArrowNF (SLA s) Source # 
Instance details

Defined in Control.Arrow.StateListArrow

Methods

rnfA :: NFData c => SLA s b c -> SLA s b c Source #

ArrowNF (IOSLA s) Source # 
Instance details

Defined in Control.Arrow.IOStateListArrow

Methods

rnfA :: NFData c => IOSLA s b c -> IOSLA s b c Source #

class (Arrow a, ArrowList a) => ArrowWNF a where Source #

partial evaluation of an arrow result using FlatSeq

There are two arrows with force the partial evaluation. By convention the 2. should be less lazy than the 1.

These arrows are sometimes useful for preventing space leaks, especially when parsing complex data structures. In many cases the evaluated AST is more space efficient than the unevaluaded with a lot of closures.

Minimal complete definition

Nothing

Methods

rwnfA :: WNFData c => a b c -> a b c Source #

rwnf2A :: WNFData c => a b c -> a b c Source #

Instances
ArrowWNF LA Source # 
Instance details

Defined in Control.Arrow.ListArrow

Methods

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

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

ArrowWNF IOLA Source # 
Instance details

Defined in Control.Arrow.IOListArrow

Methods

rwnfA :: WNFData c => IOLA b c -> IOLA b c Source #

rwnf2A :: WNFData c => IOLA b c -> IOLA b c Source #

ArrowWNF (SLA s) Source # 
Instance details

Defined in Control.Arrow.StateListArrow

Methods

rwnfA :: WNFData c => SLA s b c -> SLA s b c Source #

rwnf2A :: WNFData c => SLA s b c -> SLA s b c Source #

ArrowWNF (IOSLA s) Source # 
Instance details

Defined in Control.Arrow.IOStateListArrow

Methods

rwnfA :: WNFData c => IOSLA s b c -> IOSLA s b c Source #

rwnf2A :: WNFData c => IOSLA s b c -> IOSLA s b c Source #