content: {-# LANGUAGE CPP #-}
  
  -- | Strict @Map@. Import as:
  --
  -- > import qualified RIO.Map as Map
  --
  -- This module does not export any partial or unchecked functions.  For those,
  -- see "RIO.Map.Partial" and "RIO.Map.Unchecked"
  module RIO.Map
    (
    -- * Map type
      Data.Map.Strict.Map
  
    -- * Operators
  #if MIN_VERSION_containers(0,5,9)
    , (Data.Map.Strict.!?)
  #endif
    , (Data.Map.Strict.\\)
  
    -- * Query
    , Data.Map.Strict.null
    , Data.Map.Strict.size
    , Data.Map.Strict.member
    , Data.Map.Strict.notMember
    , Data.Map.Strict.lookup
    , Data.Map.Strict.findWithDefault
    , Data.Map.Strict.lookupLT
    , Data.Map.Strict.lookupGT
    , Data.Map.Strict.lookupLE
    , Data.Map.Strict.lookupGE
  
    -- * Construction
    , Data.Map.Strict.empty
    , Data.Map.Strict.singleton
  
    -- ** Insertion
    , Data.Map.Strict.insert
    , Data.Map.Strict.insertWith
    , Data.Map.Strict.insertWithKey
    , Data.Map.Strict.insertLookupWithKey
  
    -- ** Delete\/Update
    , Data.Map.Strict.delete
    , Data.Map.Strict.adjust
    , Data.Map.Strict.adjustWithKey
    , Data.Map.Strict.update
    , Data.Map.Strict.updateWithKey
    , Data.Map.Strict.updateLookupWithKey
    , Data.Map.Strict.alter
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.alterF
  #endif
  
    -- * Combine
  
    -- ** Union
    , Data.Map.Strict.union
    , Data.Map.Strict.unionWith
    , Data.Map.Strict.unionWithKey
    , Data.Map.Strict.unions
    , Data.Map.Strict.unionsWith
  
    -- ** Difference
    , Data.Map.Strict.difference
    , Data.Map.Strict.differenceWith
    , Data.Map.Strict.differenceWithKey
  
    -- ** Intersection
    , Data.Map.Strict.intersection
    , Data.Map.Strict.intersectionWith
    , Data.Map.Strict.intersectionWithKey
  
    -- ** General combining functions
    -- | See "Data.Map.Merge.Strict"
  
    -- ** Deprecated general combining function
  
    , Data.Map.Strict.mergeWithKey
  
    -- * Traversal
    -- ** Map
    , Data.Map.Strict.map
    , Data.Map.Strict.mapWithKey
    , Data.Map.Strict.traverseWithKey
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.traverseMaybeWithKey
  #endif
    , Data.Map.Strict.mapAccum
    , Data.Map.Strict.mapAccumWithKey
    , Data.Map.Strict.mapAccumRWithKey
    , Data.Map.Strict.mapKeys
    , Data.Map.Strict.mapKeysWith
  
    -- * Folds
    , Data.Map.Strict.foldr
    , Data.Map.Strict.foldl
    , Data.Map.Strict.foldrWithKey
    , Data.Map.Strict.foldlWithKey
    , Data.Map.Strict.foldMapWithKey
  
    -- ** Strict folds
    , Data.Map.Strict.foldr'
    , Data.Map.Strict.foldl'
    , Data.Map.Strict.foldrWithKey'
    , Data.Map.Strict.foldlWithKey'
  
    -- * Conversion
    , Data.Map.Strict.elems
    , Data.Map.Strict.keys
    , Data.Map.Strict.assocs
    , Data.Map.Strict.keysSet
    , Data.Map.Strict.fromSet
  
    -- ** Lists
    , Data.Map.Strict.toList
    , Data.Map.Strict.fromList
    , Data.Map.Strict.fromListWith
    , Data.Map.Strict.fromListWithKey
  
    -- ** Ordered lists
    , Data.Map.Strict.toAscList
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.toDescList
  #endif
  
    -- * Filter
    , Data.Map.Strict.filter
    , Data.Map.Strict.filterWithKey
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.restrictKeys
    , Data.Map.Strict.withoutKeys
  #endif
    , Data.Map.Strict.partition
    , Data.Map.Strict.partitionWithKey
  
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.takeWhileAntitone
    , Data.Map.Strict.dropWhileAntitone
    , Data.Map.Strict.spanAntitone
  #endif
  
    , Data.Map.Strict.mapMaybe
    , Data.Map.Strict.mapMaybeWithKey
    , Data.Map.Strict.mapEither
    , Data.Map.Strict.mapEitherWithKey
  
    , Data.Map.Strict.split
    , Data.Map.Strict.splitLookup
    , Data.Map.Strict.splitRoot
  
    -- * Submap
    , Data.Map.Strict.isSubmapOf
    , Data.Map.Strict.isSubmapOfBy
    , Data.Map.Strict.isProperSubmapOf
    , Data.Map.Strict.isProperSubmapOfBy
  
    -- * Indexed
    , Data.Map.Strict.lookupIndex
    , Data.Map.Strict.elemAt
    , Data.Map.Strict.deleteAt
  #if MIN_VERSION_containers(0,5,8)
    , Data.Map.Strict.take
    , Data.Map.Strict.drop
    , Data.Map.Strict.splitAt
  #endif
  
    -- * Min\/Max
  #if MIN_VERSION_containers(0,5,9)
    , Data.Map.Strict.lookupMin
    , Data.Map.Strict.lookupMax
  #endif
    , Data.Map.Strict.deleteMin
    , Data.Map.Strict.deleteMax
    , Data.Map.Strict.updateMin
    , Data.Map.Strict.updateMax
    , Data.Map.Strict.updateMinWithKey
    , Data.Map.Strict.updateMaxWithKey
    , Data.Map.Strict.minView
    , Data.Map.Strict.maxView
    , Data.Map.Strict.minViewWithKey
    , Data.Map.Strict.maxViewWithKey
  
    -- * Debugging
  #if MIN_VERSION_containers(0,5,9)
    , Data.Map.Internal.Debug.showTree
    , Data.Map.Internal.Debug.showTreeWith
  #else
    , Data.Map.Strict.showTree
    , Data.Map.Strict.showTreeWith
  #endif
    , Data.Map.Strict.valid
    ) where
  
  #if MIN_VERSION_containers(0,5,9)
  import qualified Data.Map.Internal.Debug
  #endif
  import qualified Data.Map.Strict
  