# LANGUAGE CPP #
#if __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Safe #-}
#endif

------------------------------------------------------------------------
-- |
-- Module      :  Data.HashSet
  Copyright    :   2011  
-- License     :  BSD-style
-- Maintainer  :  
-- Stability   :  provisional
-- Portability :  portable
--
-- A set of /hashable/ values.  A set cannot contain duplicate items.
  A ' HashSet ' makes no guarantees as to the order of its elements .
--
-- The implementation is based on /hash array mapped trie/.  A
  ' HashSet ' is often faster than other tree - based set types ,
-- especially when value comparison is expensive, as in the case of
-- strings.
--
-- Many operations have a average-case complexity of /O(log n)/.  The
  implementation uses a large base ( i.e. 16 ) so in practice these
-- operations are constant time.

module Data.HashSet
    (
      HashSet

    -- * Construction
    , empty
    , singleton

    -- * Combine
    , union
    , unions

    -- * Basic interface
    , null
    , size
    , member
    , insert
    , delete

    -- * Transformations
    , map

      -- * Difference and intersection
    , difference
    , intersection

    -- * Folds
    , foldl'
    , foldr

    -- * Filter
    , filter

    -- * Conversions

    -- ** Lists
    , toList
    , fromList

    -- * HashMaps
    , toMap
    , fromMap
    ) where

import Data.HashSet.Base
import Prelude ()

# LANGUAGE Safe #
----------------------------------------------------------------------
 |
 Module      :  Data.HashSet
 License     :  BSD-style
 Maintainer  :  
 Stability   :  provisional
 Portability :  portable

 A set of /hashable/ values.  A set cannot contain duplicate items.

 The implementation is based on /hash array mapped trie/.  A
 especially when value comparison is expensive, as in the case of
 strings.

 Many operations have a average-case complexity of /O(log n)/.  The
 operations are constant time.
 * Construction
 * Combine
 * Basic interface
 * Transformations
 * Difference and intersection
 * Folds
 * Filter
 * Conversions
 ** Lists
 * HashMaps
# LANGUAGE CPP #
#if __GLASGOW_HASKELL__ >= 702
#endif

  Copyright    :   2011  
  A ' HashSet ' makes no guarantees as to the order of its elements .
  ' HashSet ' is often faster than other tree - based set types ,
  implementation uses a large base ( i.e. 16 ) so in practice these

module Data.HashSet
    (
      HashSet

    , empty
    , singleton

    , union
    , unions

    , null
    , size
    , member
    , insert
    , delete

    , map

    , difference
    , intersection

    , foldl'
    , foldr

    , filter


    , toList
    , fromList

    , toMap
    , fromMap
    ) where

import Data.HashSet.Base
import Prelude ()
