-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Fast unicode character sets based on complemented PATRICIA tries
--   
--   Fast unicode character sets based on complemented PATRICIA tries.
@package charset
@version 0.3.12

-- | Fast set membership tests for byte values. The set representation is
--   unboxed for efficiency and uses one bit per byte to represent the
--   presence or absence of a byte in the set.
--   
--   This is a fairly minimal API. You probably want to use CharSet.
module Data.CharSet.ByteSet
newtype ByteSet
ByteSet :: ByteString -> ByteSet
fromList :: [Word8] -> ByteSet

-- | Check the set for membership.
member :: Word8 -> ByteSet -> Bool
instance GHC.Classes.Eq Data.CharSet.ByteSet.ByteSet
instance GHC.Classes.Ord Data.CharSet.ByteSet.ByteSet
instance GHC.Internal.Show.Show Data.CharSet.ByteSet.ByteSet

-- | A CharSet is an efficient representation of a set of
--   Char values designed for fast membership tests.
--   
--   As an example build isAlpha will create a set of alphabetic
--   characters. We can then use member on the generated set to
--   efficiently test if a given Char represents an
--   alphabetic character.
--   
--   Designed to be imported qualified:
--   
--   
--   import Data.CharSet (CharSet)
--   import qualified Data.CharSet as CharSet
--   
module Data.CharSet

-- | Stored as a (possibly negated) IntSet and a fast set used for the head
--   byte.
--   
--   The set of valid (possibly negated) head bytes is stored unboxed as a
--   32-byte bytestring-based lookup table.
data CharSet
CharSet :: !Bool -> !ByteSet -> !IntSet -> CharSet
(\\) :: CharSet -> CharSet -> CharSet

-- | O(n) worst case
null :: CharSet -> Bool

-- | O(n)
size :: CharSet -> Int
member :: Char -> CharSet -> Bool
notMember :: Char -> CharSet -> Bool
overlaps :: CharSet -> CharSet -> Bool
isSubsetOf :: CharSet -> CharSet -> Bool
isComplemented :: CharSet -> Bool

-- | Applies a predicate across the whole range of possible character
--   values to create a set of only those characters which satisfy the
--   predicate.
--   
--   As an example build isAlpha will generate a CharSet of all
--   alphabetic characters.
build :: (Char -> Bool) -> CharSet
empty :: CharSet
singleton :: Char -> CharSet
full :: CharSet
insert :: Char -> CharSet -> CharSet
delete :: Char -> CharSet -> CharSet
complement :: CharSet -> CharSet
range :: Char -> Char -> CharSet
union :: CharSet -> CharSet -> CharSet
intersection :: CharSet -> CharSet -> CharSet
difference :: CharSet -> CharSet -> CharSet
filter :: (Char -> Bool) -> CharSet -> CharSet
partition :: (Char -> Bool) -> CharSet -> (CharSet, CharSet)
map :: (Char -> Char) -> CharSet -> CharSet
fold :: (Char -> b -> b) -> b -> CharSet -> b
toList :: CharSet -> String
fromList :: String -> CharSet
toAscList :: CharSet -> String
fromAscList :: String -> CharSet
fromDistinctAscList :: String -> CharSet
fromCharSet :: CharSet -> (Bool, IntSet)
toCharSet :: IntSet -> CharSet
toArray :: CharSet -> UArray Char Bool
instance GHC.Internal.Enum.Bounded Data.CharSet.CharSet
instance GHC.Internal.Data.Data.Data Data.CharSet.CharSet
instance GHC.Classes.Eq Data.CharSet.CharSet
instance GHC.Internal.Data.String.IsString Data.CharSet.CharSet
instance GHC.Internal.Base.Monoid Data.CharSet.CharSet
instance GHC.Classes.Ord Data.CharSet.CharSet
instance GHC.Internal.Read.Read Data.CharSet.CharSet
instance GHC.Internal.Base.Semigroup Data.CharSet.CharSet
instance GHC.Internal.Show.Show Data.CharSet.CharSet

-- | The various character classifications from Data.Char as
--   CharSets
module Data.CharSet.Common
control :: CharSet
space :: CharSet
lower :: CharSet
upper :: CharSet
alpha :: CharSet
alphaNum :: CharSet
print :: CharSet
digit :: CharSet
octDigit :: CharSet
letter :: CharSet
mark :: CharSet
number :: CharSet
punctuation :: CharSet
symbol :: CharSet
separator :: CharSet
ascii :: CharSet
latin1 :: CharSet
asciiUpper :: CharSet
asciiLower :: CharSet

module Data.CharSet.Posix.Ascii
posixAscii :: HashMap String CharSet
lookupPosixAsciiCharSet :: String -> Maybe CharSet
alnum :: CharSet
alpha :: CharSet
ascii :: CharSet
blank :: CharSet
cntrl :: CharSet
digit :: CharSet
graph :: CharSet
print :: CharSet
word :: CharSet
punct :: CharSet
space :: CharSet
upper :: CharSet
lower :: CharSet
xdigit :: CharSet

-- | Provides unicode general categories, which are typically connoted by
--   \p{Ll} or \p{Modifier_Letter}. Lookups can be
--   constructed using categories or individual character sets can
--   be used directly.
module Data.CharSet.Unicode
data UnicodeCategory
UnicodeCategory :: String -> String -> CharSet -> String -> UnicodeCategory
unicodeCategories :: [UnicodeCategory]
modifierLetter :: CharSet
otherLetter :: CharSet
letter :: CharSet
lowercaseLetter :: CharSet
uppercaseLetter :: CharSet
titlecaseLetter :: CharSet
letterAnd :: CharSet
nonSpacingMark :: CharSet
spacingCombiningMark :: CharSet
enclosingMark :: CharSet
mark :: CharSet
space :: CharSet
lineSeparator :: CharSet
paragraphSeparator :: CharSet
separator :: CharSet
mathSymbol :: CharSet
currencySymbol :: CharSet
modifierSymbol :: CharSet
otherSymbol :: CharSet
symbol :: CharSet
decimalNumber :: CharSet
letterNumber :: CharSet
otherNumber :: CharSet
number :: CharSet
dashPunctuation :: CharSet
openPunctuation :: CharSet
closePunctuation :: CharSet
initialQuote :: CharSet
finalQuote :: CharSet
connectorPunctuation :: CharSet
otherPunctuation :: CharSet
punctuation :: CharSet
control :: CharSet
format :: CharSet
privateUse :: CharSet
surrogate :: CharSet
notAssigned :: CharSet
other :: CharSet
instance GHC.Internal.Data.Data.Data Data.CharSet.Unicode.UnicodeCategory
instance GHC.Internal.Show.Show Data.CharSet.Unicode.UnicodeCategory

-- | Provides unicode general categories, which are typically connoted by
--   p{InBasicLatin} or p{InIPA_Extensions}. Lookups can
--   be constructed using categories or individual character sets
--   can be used directly.
module Data.CharSet.Unicode.Block
data Block
Block :: String -> CharSet -> Block
[blockName] :: Block -> String
[blockCharSet] :: Block -> CharSet
blocks :: [Block]
lookupBlock :: String -> Maybe Block
lookupBlockCharSet :: String -> Maybe CharSet
basicLatin :: CharSet
latin1Supplement :: CharSet
latinExtendedA :: CharSet
latinExtendedB :: CharSet
ipaExtensions :: CharSet
spacingModifierLetters :: CharSet
combiningDiacriticalMarks :: CharSet
greekAndCoptic :: CharSet
cyrillic :: CharSet
cyrillicSupplementary :: CharSet
armenian :: CharSet
hebrew :: CharSet
arabic :: CharSet
syriac :: CharSet
thaana :: CharSet
devanagari :: CharSet
bengali :: CharSet
gurmukhi :: CharSet
gujarati :: CharSet
oriya :: CharSet
tamil :: CharSet
telugu :: CharSet
kannada :: CharSet
malayalam :: CharSet
sinhala :: CharSet
thai :: CharSet
lao :: CharSet
tibetan :: CharSet
myanmar :: CharSet
georgian :: CharSet
hangulJamo :: CharSet
ethiopic :: CharSet
cherokee :: CharSet
unifiedCanadianAboriginalSyllabics :: CharSet
ogham :: CharSet
runic :: CharSet
tagalog :: CharSet
hanunoo :: CharSet
buhid :: CharSet
tagbanwa :: CharSet
khmer :: CharSet
mongolian :: CharSet
limbu :: CharSet
taiLe :: CharSet
khmerSymbols :: CharSet
phoneticExtensions :: CharSet
latinExtendedAdditional :: CharSet
greekExtended :: CharSet
generalPunctuation :: CharSet
superscriptsAndSubscripts :: CharSet
currencySymbols :: CharSet
combiningDiacriticalMarksForSymbols :: CharSet
letterlikeSymbols :: CharSet
numberForms :: CharSet
arrows :: CharSet
mathematicalOperators :: CharSet
miscellaneousTechnical :: CharSet
controlPictures :: CharSet
opticalCharacterRecognition :: CharSet
enclosedAlphanumerics :: CharSet
boxDrawing :: CharSet
blockElements :: CharSet
geometricShapes :: CharSet
miscellaneousSymbols :: CharSet
dingbats :: CharSet
miscellaneousMathematicalSymbolsA :: CharSet
supplementalArrowsA :: CharSet
braillePatterns :: CharSet
supplementalArrowsB :: CharSet
miscellaneousMathematicalSymbolsB :: CharSet
supplementalMathematicalOperators :: CharSet
miscellaneousSymbolsAndArrows :: CharSet
cjkRadicalsSupplement :: CharSet
kangxiRadicals :: CharSet
ideographicDescriptionCharacters :: CharSet
cjkSymbolsAndPunctuation :: CharSet
hiragana :: CharSet
katakana :: CharSet
bopomofo :: CharSet
hangulCompatibilityJamo :: CharSet
kanbun :: CharSet
bopomofoExtended :: CharSet
katakanaPhoneticExtensions :: CharSet
enclosedCjkLettersAndMonths :: CharSet
cjkCompatibility :: CharSet
cjkUnifiedIdeographsExtensionA :: CharSet
yijingHexagramSymbols :: CharSet
cjkUnifiedIdeographs :: CharSet
yiSyllables :: CharSet
yiRadicals :: CharSet
hangulSyllables :: CharSet
highSurrogates :: CharSet
highPrivateUseSurrogates :: CharSet
lowSurrogates :: CharSet
privateUseArea :: CharSet
cjkCompatibilityIdeographs :: CharSet
alphabeticPresentationForms :: CharSet
arabicPresentationFormsA :: CharSet
variationSelectors :: CharSet
combiningHalfMarks :: CharSet
cjkCompatibilityForms :: CharSet
smallFormVariants :: CharSet
arabicPresentationFormsB :: CharSet
halfwidthAndFullwidthForms :: CharSet
specials :: CharSet
instance GHC.Internal.Data.Data.Data Data.CharSet.Unicode.Block.Block
instance GHC.Internal.Show.Show Data.CharSet.Unicode.Block.Block

-- | Provides unicode general categories, which are typically connoted by
--   \p{Ll} or \p{Modifier_Letter}. Lookups can be
--   constructed using categories or individual character sets can
--   be used directly.
--   
--   A case, _ and - insensitive lookup is provided by
--   lookupCategory and can be used to provide behavior similar to
--   that of Perl or PCRE.
module Data.CharSet.Unicode.Category
data Category
Category :: String -> String -> CharSet -> String -> Category
[categoryName] :: Category -> String
[categoryAbbreviation] :: Category -> String
[categoryCharSet] :: Category -> CharSet
[categoryDescription] :: Category -> String
categories :: [Category]
lookupCategory :: String -> Maybe Category
lookupCategoryCharSet :: String -> Maybe CharSet
modifierLetter :: CharSet
otherLetter :: CharSet
letter :: CharSet
lowercaseLetter :: CharSet
uppercaseLetter :: CharSet
titlecaseLetter :: CharSet
letterAnd :: CharSet
nonSpacingMark :: CharSet
spacingCombiningMark :: CharSet
enclosingMark :: CharSet
mark :: CharSet
space :: CharSet
lineSeparator :: CharSet
paragraphSeparator :: CharSet
separator :: CharSet
mathSymbol :: CharSet
currencySymbol :: CharSet
modifierSymbol :: CharSet
otherSymbol :: CharSet
symbol :: CharSet
decimalNumber :: CharSet
letterNumber :: CharSet
otherNumber :: CharSet
number :: CharSet
dashPunctuation :: CharSet
openPunctuation :: CharSet
closePunctuation :: CharSet
initialQuote :: CharSet
finalQuote :: CharSet
connectorPunctuation :: CharSet
otherPunctuation :: CharSet
punctuation :: CharSet
control :: CharSet
format :: CharSet
privateUse :: CharSet
surrogate :: CharSet
notAssigned :: CharSet
other :: CharSet
instance GHC.Internal.Data.Data.Data Data.CharSet.Unicode.Category.Category
instance GHC.Internal.Show.Show Data.CharSet.Unicode.Category.Category

module Data.CharSet.Posix.Unicode
posixUnicode :: HashMap String CharSet
lookupPosixUnicodeCharSet :: String -> Maybe CharSet
alnum :: CharSet
alpha :: CharSet
ascii :: CharSet
blank :: CharSet
cntrl :: CharSet
digit :: CharSet
graph :: CharSet
print :: CharSet
word :: CharSet
punct :: CharSet
space :: CharSet
upper :: CharSet
lower :: CharSet
xdigit :: CharSet

module Data.CharSet.Posix
posixAscii :: HashMap String CharSet
lookupPosixAsciiCharSet :: String -> Maybe CharSet
posixUnicode :: HashMap String CharSet
lookupPosixUnicodeCharSet :: String -> Maybe CharSet
