strict-containers-0.1.0.0: Various strict container types
Safe Haskell Safe-Inferred
Language Haskell2010

Data.Unit.Strict

Description

Helper functions for enforcing strictness.

Synopsis

Documentation

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.