trifecta-0.17: Text/Trifecta/CharSet.hs
-----------------------------------------------------------------------------
-- |
-- Module : Text.Trifecta.CharSet
-- Copyright : (c) Edward Kmett 2010-2011,
-- Bryan O'Sullivan 2008
-- License : BSD3
-- Maintainer : ekmett@gmail.com
-- Stability : experimental
-- Portability : non-portable (Data, BangPatterns, MagicHash)
--
-- Fast set membership tests for 'Char' values
--
-- Stored as a (possibly negated IntMap) and a fast set for the ASCII range.
--
-- The ASCII range is unboxed for efficiency. For small (complemented) sets, we
-- test for membership using a binary search. For larger (complemented) sets
-- we use a lookup table.
--
-- Designed to be imported qualified:
--
-- > import Text.Trifecta.CharSet.Prim (CharSet)
-- > import qualified Text.Trifecta.CharSet.Prim as CharSet
--
-------------------------------------------------------------------------------
module Text.Trifecta.CharSet
(
-- * Set type
CharSet
-- * Operators
, (\\)
-- * Query
, null
, size
, member
, notMember
, overlaps, isSubsetOf
, isComplemented
-- * Construction
, build
, empty
, singleton
, full
, insert
, delete
, complement
, range
-- * Combine
, union
, intersection
, difference
-- * Filter
, filter
, partition
-- * Map
, map
-- * Fold
, fold
-- * Conversion
-- ** List
, toList
, fromList
-- ** Ordered list
, toAscList
, fromAscList
, fromDistinctAscList
-- ** IntMaps
, fromCharSet
, toCharSet
-- ** Array
, toArray
, module Text.Trifecta.CharSet.Common
) where
import Text.Trifecta.CharSet.Prim
import Text.Trifecta.CharSet.Common
import Prelude ()