case-insensitive-0.2.0.2: Case insensitive string comparisonSource codeContentsIndex
Data.CaseInsensitive
MaintainerBas van Dijk <v.dijk.bas@gmail.com>
Description

This module is intended to be imported qualified. May I suggest:

 import           Data.CaseInsensitive  ( CI )
 import qualified Data.CaseInsensitive as CI
Synopsis
data CI s
mk :: FoldCase s => s -> CI s
original :: CI s -> s
foldedCase :: CI s -> s
map :: FoldCase s2 => (s1 -> s2) -> CI s1 -> CI s2
class FoldCase s where
foldCase :: s -> s
Documentation
data CI s Source

A CI s provides Case Insensitive comparison for the string-like type s (for example: String, Text, ByteString, ShowS, etc.).

Note that CI s has an instance for IsString which together with the OverloadedStrings language extension allows you to write case insensitive string literals as in:

> ("Content-Type" :: CI Text) == ("CONTENT-TYPE" :: CI Text)
True
show/hide Instances
Typeable1 CI
Eq s => Eq (CI s)
Ord s => Ord (CI s)
(Read s, FoldCase s) => Read (CI s)
Show s => Show (CI s)
(IsString s, FoldCase s) => IsString (CI s)
Monoid s => Monoid (CI s)
FoldCase (CI s)
mk :: FoldCase s => s -> CI sSource
Make the given string-like value case insensitive.
original :: CI s -> sSource
Retrieve the original string-like value.
foldedCase :: CI s -> sSource
Retrieve the case folded string-like value. (Also see foldCase).
map :: FoldCase s2 => (s1 -> s2) -> CI s1 -> CI s2Source
Transform the original string-like value but keep it case insensitive.
class FoldCase s whereSource

Class of string-like types that support folding cases.

Note that the instances for Char, String, ShowS and the ByteString types do not perform fully correct Unicode-aware case folding, they simply toLower their characters! This is of course more than suitable for ASCII encoded strings.

The instances for the Text types use toCaseFold which performs a better Unicode-aware case fold which is more suitable for case insensitive string comparisons.

Methods
foldCase :: s -> sSource
show/hide Instances
Produced by Haddock version 2.6.1