cardano-strict-containers-0.1.4.0: Various strict container types
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Unit.Strict

Description

Helper functions for enforcing strictness.

Synopsis

Documentation

data StrictUnit Source #

The equivalent of (), but with a strict mappend implementation.

For more information, see the documentation for forceElemsToWHNF.

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