Case insensitive string comparison

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

Module documentation for

There are no documented modules for this package.

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