diff --git a/Data/CaseInsensitive.hs b/Data/CaseInsensitive.hs
--- a/Data/CaseInsensitive.hs
+++ b/Data/CaseInsensitive.hs
@@ -57,6 +57,8 @@
 import qualified Data.Text      as T  ( Text, toCaseFold )
 import qualified Data.Text.Lazy as TL ( Text, toCaseFold )
 
+-- from hashable:
+import Data.Hashable ( Hashable(hash) )
 
 --------------------------------------------------------------------------------
 -- Case Insensitive Strings
@@ -107,6 +109,9 @@
 
 instance Show s ⇒ Show (CI s) where
     showsPrec prec = showsPrec prec . original
+
+instance Hashable s => Hashable (CI s) where
+  hash = hash . foldedCase
 
 
 --------------------------------------------------------------------------------
diff --git a/case-insensitive.cabal b/case-insensitive.cabal
--- a/case-insensitive.cabal
+++ b/case-insensitive.cabal
@@ -1,5 +1,5 @@
 name:          case-insensitive
-version:       0.2.0.2
+version:       0.3
 cabal-version: >=1.6
 build-type:    Simple
 license:       BSD3
@@ -27,4 +27,5 @@
   build-depends: base       >= 3   && < 4.4
                , bytestring >= 0.9 && < 0.10
                , text       >= 0.3 && < 0.12
+               , hashable   >= 1.0 && < 1.2
   exposed-modules: Data.CaseInsensitive
