State package:ghc

State monad for the linear register allocator.
Unit manipulation
A state monad which is strict in the state s, but lazy in the value a. See Note [Strict State monad] for the particular notion of strictness and implementation details.
The register allocator state
Late cost centre insertion state, indexed by some extra state type that an insertion method may require.