deepseq-bounded-0.5.5: Bounded deepseq, including support for generic deriving

Copyright(c) 2014, Andrew G. Seniuk
LicenseBSD-style (see the file LICENSE)
MaintainerAndrew Seniuk <rasfar@gmail.com>
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Control.DeepSeq.Bounded.NFDataPDyn

Contents

Description

 

Synopsis

Dynamic pattern-directed forcing

These functions are concerned with extending the forcing pattern dynamically, depending on the types of the nodes encountered while generically traversing a term.

(Work in progress...).

rnfpDyn :: forall a. (Generic a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a), All2 Data (Code a)) => (forall c. Data c => c -> PatNode) -> a -> () Source

SOP/SYB hybrid dynamic rnfp. Takes a SYB GenericQ PatNode argument, which extends the pattern dynamically, depending on the type of the value node.

deepseqpDyn :: (Show a, NFDataP a, Generic a, Data a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a), All2 Data (Code a)) => (forall c. Data c => c -> PatNode) -> a -> b -> b Source

SOP/SYB hybrid dynamic deepseqp.

forcepDyn :: (Show a, NFDataP a, Generic a, Data a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a), All2 Data (Code a)) => (forall c. Data c => c -> PatNode) -> a -> a Source

SOP/SYB hybrid dynamic forcep.

rnfpDyn' :: forall a. (Generic a, All2 Generic (Code a), All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Generic c => c -> PatNode) -> a -> () Source

SOP-only dynamic rnfp. Takes an SOP generic function yielding PatNode, which extends the pattern dynamically, depending on the type of the value node.

deepseqpDyn' :: (Show a, NFDataP a, Generic a, Data a, All2 Generic (Code a), All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Generic c => c -> PatNode) -> a -> b -> b Source

SOP-only dynamic deepseqp.

forcepDyn' :: (Show a, NFDataP a, Generic a, Data a, All2 Generic (Code a), All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Generic c => c -> PatNode) -> a -> a Source

SOP-only dynamic forcep.

rnfpDyn'' :: forall a. (Generic a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Typeable c => c -> PatNode) -> a -> () Source

SOP/Typeable hybrid dynamic rnfp. Takes a SYB GenericQ PatNode argument, which extends the pattern dynamically, depending on the type of the value node.

deepseqpDyn'' :: (Show a, NFDataP a, Generic a, Data a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Typeable c => c -> PatNode) -> a -> b -> b Source

SOP/Typeable hybrid dynamic deepseqp.

forcepDyn'' :: (Show a, NFDataP a, Generic a, Data a, All2 Show (Code a), All2 NFData (Code a), All2 NFDataN (Code a), All2 NFDataP (Code a)) => (forall c. Typeable c => c -> PatNode) -> a -> a Source

SOP/Typeable hybrid dynamic forcep.

Re-exported for convenience