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

CopyrightAndrew G. Seniuk 2014-2015
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 :: forall a b. (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 :: forall a. (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 a SOP generic function yielding PatNode, which extends the pattern dynamically, depending on the type of the value node.

deepseqpDyn' :: forall a b. (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' :: forall a. (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'' :: forall a b. (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'' :: forall a. (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