Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.Unit.Strict
Description
Helper functions for enforcing strictness.
Synopsis
- data StrictUnit
- forceElemsToWHNF ∷ Foldable t ⇒ t a → t a
Documentation
data StrictUnit Source #
The equivalent of ()
, but with a strict mappend
implementation.
For more information, see the documentation for forceElemsToWHNF
.
Instances
Monoid StrictUnit Source # | |
Defined in Data.Unit.Strict | |
Semigroup StrictUnit Source # | |
Defined in Data.Unit.Strict Methods (<>) ∷ StrictUnit → StrictUnit → StrictUnit sconcat ∷ NonEmpty StrictUnit → StrictUnit stimes ∷ Integral b ⇒ b → StrictUnit → StrictUnit |
forceElemsToWHNF ∷ Foldable t ⇒ t a → t a Source #
Force all of the elements of a Foldable
to weak head normal form.
In order to ensure that all of the elements of a Foldable
are strict, we
can simply foldMap
over it and seq
each value with ()
. However,
()
's mappend
implementation is actually completely lazy: _ <> _ = ()
So, in order to work around this, we instead utilize this newly defined
StrictUnit
whose mappend
implementation is specifically strict.