Case insensitive string comparison

Version on this page:
LTS Haskell 9.14:
Stackage Nightly 2017-11-23:
Latest on Hackage:
BSD3 licensed by Bas van Dijk
Maintained by Bas van Dijk

Module documentation for

Hackage Build Status

The module Data.CaseInsensitive provides the CI type constructor which can be parameterised by a string-like type like: String, ByteString, Text, etc.. Comparisons of values of the resulting type will be insensitive to cases.


* Support criterion-1.2

* Support base-4.10

* Support HUnit-1.5.

* Fix build of benchmarks when getting the sources from Hackage.

* Add Travis CI support
* Add Semigroup s => Semigroup (CI s) instance

* Support HUnit-1.3
* Support criterion-1.1
* Updated .nix files

* Fixed #17:

* Add CHANGELOG to extra-source files so that it shows up on Hackage

* Bump base and deepseq upper bounds for GHC 7.10 compatibility

* Add case-insensitive.nix and default.nix

* Fix #14: Build failure with GHC 7.2.2

* Fix #8: Don't unnecessarily use NoImplicitPrelude

* Solved warnings on GHC-7.8.3

* Bump text upper version bounds

* Derived a Data instance for CI

* Support text-1.1

* Support text-1.0

* Fixed bad character L178


* Added the Data.CaseInsensitive.Unsafe module

* Mark Data.CaseInsensitive.Internal as Unsafe

* Support criterion-0.8

* Fix building on GHC-6.12.1

* Bump base upper bound for GHC 7.7

* Added a NEWS file

1.0 @ Mon Jan 28 14:39:05 UTC 2013

* Make package ready for the Haskell Platform

* Drop the UnicodeSyntax, TypeSynonymInstances and FlexibleInstances
language extensions

* Add instance NFData s => NFData (CI s)

* Add a hidden method to the FoldCase type class:
foldCaseList :: [s] -> [s]
foldCaseList = foldCase

* Add instance FoldCase a => FoldCase [a] where
foldCase = foldCaseList

* Add instance FoldCase Char where
foldCase = toLower
foldCaseList = TL.unpack . TL.toCaseFold . TL.pack

* Added a simple test suite

* Added a simple benchmark

* Added a rewrite rule to make 'mk' more efficient on strict
ByteStrings @ Fri Dec 14 07:06:58 UTC 2012

* Support hashable-1.2 @ Sat Aug 18 07:20:49 UTC 2012

* Improve performance of foldCase on sctrict and lazy ByteStrings @ Thu Aug 16 14:58:33 UTC 2012

* Declare Data.CaseInsensitive to be Trustworthy

* Support base-4.6

* Support bytestring-0.10 @ Wed Dec 14 15:24:55 UTC 2011

* Support base-4.5

0.4 @ Thu Oct 27 18:29:58 UTC 2011

* Remove instance FoldCase Char

* Perform proper case folding on Strings:
-instance FoldCase String where foldCase = toLower
+instance FoldCase String where foldCase = TL.unpack . TL.toCaseFold . TL.pack @ Mon Aug 8 06:28:21 UTC 2011

* Support base-4.4

0.3 @ Thu Jul 14 07:38:52 UTC 2011

* Add instance Hashable s => Hashable (CI s) @ Thu Jun 30 22:24:23 UTC 2011

* Moved from darcs on
to git on @ Tue Mar 29 20:30:32 UTC 2011

* Drop dependency on base-unicode-symbols

0.2 @ Mon Feb 7 20:18:34 UTC 2011

* Export foldedCase :: CI s -> s

* Remove instance FoldCase s ⇒ FoldCase [s]

* Add instance FoldCase String

0.1 @ Sun Feb 6 23:54:22 UTC 2011

* Initial release
Used by 200 packages:
adblock2privoxy, airship, amazonka-core, amazonka-test, apiary, api-tools, ascii, atlassian-connect-core, authenticate, aws, aws-dynamodb-streams, aws-general, aws-sign4, azure-service-api, azure-servicebus, azurify, binary-orphans, bioinformatics-toolkit, bytestring-conversion, clr-inline, configifier, configuration-tools, conversion-case-insensitive, curryer, data-default-instances-case-insensitive, DAV, dhall, dom-parser, dropbox-sdk, email-header, EtaMOO, fbmessenger-api, filepath-crypto, firefly, funbot, ghcjs-fetch, git-annex, github-webhook-handler-snap, gogol, gogol-core, growler, gssapi-wai, hack2-handler-snap-server, hack2-interface-wai, hackage-proxy, handa-gdata, happybara-webkit, haskell-aliyun, haskell-ftp, hdo, helix, hexpress, heyefi, hgithub, hsoz, hspec-wai, hspec-wai-json, hstradeking, html-tokenizer, http2, http-client, http-client-auth, http-client-extra, http-client-tls, http-common, http-dispatch, http-enumerator, http-kinder, http-kit, http-media, http-pony-serve-wai, http-pony-transformer-case-insensitive, http-proxy, http-response-decoder, http-reverse-proxy, http-streams, http-types, hulk, hums, iCalendar, imm, inspector-wrecker, irc-fun-bot, keter, lambdatwit, language-puppet, list-t-html-parser, lord, mangopay, megaparsec, MFlow, mighttpd2, miku, minio-hs, mongrel2-handler, mqtt, multipart-names, namelist, network-api-support, nicovideo-translator, notmuch-web, ntrip-client, oauthenticated, on-a-horse, opaleye, opaleye-sqlite, opml-conduit, orchestrate, pandoc, pg, pokitdok, postgresql-simple, postgrest, prove-everywhere-server, quickcheck-instances, ratel, ratel-wai, raven-haskell-scotty, req, rest-client, rest-core, rest-snap, rest-types, rest-wai, scotty, scroll, servant, servant-auth-hmac, servant-auth-server, servant-docs, servant-pandoc, servant-quickcheck, servant-snap, servant-subscriber, serv-wai, skylighting, snap-accept, snap-core, snap-cors, snap-extras, snaplet-rest, snap-predicates, snap-server, solr, Spock-core, sprinkles, sqsd-local, sscgi, sssp, strelka-wai, swagger-petstore, swagger-test, t3-server, tagstream-conduit, text-latin1, through-text, tostring, transient-universe, trasa-server, twentefp-websockets, twhs, VKHS, waddle, wai-app-file-cgi, wai-cors, wai-extra, wai-frontend-monadcgi, wai-logger, wai-middleware-auth, wai-middleware-cache-redis, wai-middleware-crowd, wai-middleware-hmac, wai-middleware-hmac-client, wai-middleware-rollbar, wai-predicates, wai-request-spec, wai-routes, wai-routing, wai-websockets, waldo, warp, webapi, webapp, webcrank, web-inv-route, websockets, webwire, Wheb, wrecker, wreq, wreq-sb, xdcc, xml2json, xml-lens, Yablog, yesod-core, yesod-test, yet-another-logger, zendesk-api, zip
comments powered byDisqus