| 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.