HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulerere-0.2.0.2Haskell2010

RERE.CharSet

Sets of characters.

Using this is more efficint than RE.Type.Alt:ng individual characters.

  • 1 type
  • 15 values
  • Packagerere-0.2.0.2
  • Exports16
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceCharSet.hs

Set of characters

1 declaration
newtypenewtype CharSet
#

A set of Chars.

We use range set, which works great with Char.

Instances4Eq, Ord, Show, IsString
  • Eq CharSetDefined in rere-0.2.0.2 · RERE.CharSet
  • Ord CharSetDefined in rere-0.2.0.2 · RERE.CharSet
  • Show CharSetDefined in rere-0.2.0.2 · RERE.CharSet
  • IsString CharSetDefined in rere-0.2.0.2 · RERE.CharSet
    Example1 expression
    "foobar" :: CharSet"abfor"

Construction

8 declarations
valueuniverse :: CharSet
#

universe

Example1 expression
size universe1114112
Example1 expression
universeCS.fromIntervalList [('\NUL','\1114111')]

Query

3 declarations
valuesize :: CharSet -> Int
#

Size of CharSet

Example1 expression
size $ fromIntervalList [('a','f'), ('0','9')]16
Example1 expression
length $ toList $ fromIntervalList [('a','f'), ('0','9')]16

Conversions

4 declarations
valuefromIntervalList :: [(Char, Char)] -> CharSet
#

Convert from interval pairs.

Example1 expression
fromIntervalList []""
Example1 expression
fromIntervalList [('a','f'), ('0','9')]"0123456789abcdef"
Example1 expression
fromIntervalList [('Z','A')]""
valuetoIntervalList :: CharSet -> [(Char, Char)]
#

Convert to interval list

Example1 expression
toIntervalList $ union "01234" "56789"[('0','9')]