{-# OPTIONS_GHC -Wno-unused-imports #-}

-- | Differences on 'Map's, represented as cancellative monoids.
module Data.Map.Diff.Strict (
    -- * Types
    Delta (..)
  , Diff
    -- * Conversion
  , keysSet
    -- * Construction
  , diff
  , empty
    -- ** Maps
  , fromMap
  , fromMapDeletes
  , fromMapInserts
    -- ** Lists
  , fromList
  , fromListDeletes
  , fromListInserts
    -- * Query
    -- ** Size
  , null
  , numDeletes
  , numInserts
  , size
    -- * Applying diffs
  , applyDiff
  , applyDiffForKeys
    -- * Folds and traversals
  , foldMapDelta
  , traverseDeltaWithKey_
    -- * Filter
  , filterOnlyKey
  ) where

import           Data.Map.Diff.Strict.Internal
import           Data.Map.Strict (Map)
import           Prelude hiding (null)