    -- | Classes and concrete implementations for mutable data structures.
    --
    -- For more information on the design of this library, see the README file,
    -- also available at <http://www.stackage.org/package/mutable-containers>.
    module Data.Mutable
        ( -- * Data types
          -- ** Single-cell mutable references
          PRef
        , IOPRef
        , asPRef
        , URef
        , IOURef
        , asURef
        , SRef
        , IOSRef
        , asSRef
        , BRef
        , IOBRef
        , asBRef
          -- *** Standard re-exports
        , IORef
        , asIORef
        , STRef
        , asSTRef
        , MutVar
        , asMutVar
          -- ** Collections/queues
        , Deque
        , UDeque
        , asUDeque
        , SDeque
        , asSDeque
        , BDeque
        , asBDeque
        , DLList
        , asDLList
          -- * Type classes
        , MutableContainer (..)
        , MutableRef (..)
        , MutableAtomicRef (..)
        , MutableCollection (..)
        , MutablePushFront (..)
        , MutablePushBack (..)
        , MutablePopFront (..)
        , MutablePopBack (..)
          -- * Constraint kinds
        , MutableQueue
        , MutableStack
        , MutableDeque
          -- * Convenience re-exports
        , PrimMonad
        , PrimState
        , RealWorld
        , Prim
        , Unbox
        , Storable
        ) where

    import Data.Mutable.Class
    import Data.Mutable.URef
    import Data.Mutable.SRef
    import Data.Mutable.PRef
    import Data.Mutable.BRef
    import Data.Mutable.Deque
    import Data.Mutable.DLList
    import Data.Vector.Unboxed (Unbox)
    import Data.Primitive (Prim)
    import Data.Vector.Storable (Storable)