Copyright | (c) 2014, Andrew G. Seniuk |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Andrew Seniuk <rasfar@gmail.com> |
Stability | provisional |
Portability | GHC (uses SOP) |
Safe Haskell | None |
Language | Haskell2010 |
This module provides an overloaded function, seq_
, for efficiently
switching between
and forcen
0
. This is useful for
connecting units of forcing (propagating demand). It was motivated
for use with auto-instrumentation, where forcen
2seq_
can be injected
at every node of the AST (refer to the seqaid project).
Each node carries a couple bits of information, determining which
depth (0 or 2) is in force, and whether to spark parallel evaluation
when the depth is 2. This state can be configured statically
or dynamically.
Documentation
rnf_ :: forall a. Generic a => SeqNodeKind -> a -> () Source
force_ :: forall a. Generic a => SeqNodeKind -> a -> a Source
seq_ :: forall a b. Generic a => SeqNodeKind -> a -> b -> b Source