module Bluefin.StateSource ( -- | A 'StateSource' allows you to allocate new -- 'Bluefin.State.State' handles, much like 'Control.Monad.ST' -- allows you to allocate new 'Data.STRef.STRef's. This can be -- useful when you want to avoid nested 'Bluefin.State.runState' -- (or `Bluefin.State.evalState') blocks, or you need a number -- of mutable states that is only dynamically known. -- * Handle StateSource, -- * Handlers withStateSource, -- * Effectful operations newState, ) where import Bluefin.Internal