diff --git a/Text/Casing.hs b/Text/Casing.hs
--- a/Text/Casing.hs
+++ b/Text/Casing.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE DeriveTraversable #-}
 -- | Conversions between several common identifier casing conventions:
 --
 -- - @PascalCase@ - no spacing between words, first letter in word is
@@ -11,7 +12,7 @@
 module Text.Casing
 (
 -- * Types
-Identifier
+Identifier (..)
 -- * Parsing
 , fromHumps
 , fromKebab
@@ -46,7 +47,7 @@
 
 -- | An opaque type that represents a parsed identifier.
 newtype Identifier a = Identifier { unIdentifier :: [a] }
-    deriving (Monad, Functor, Applicative, Show)
+    deriving (Monad, Functor, Applicative, Show, Foldable, Traversable)
 
 wordCase :: String -> String
 wordCase "" = ""
diff --git a/casing.cabal b/casing.cabal
--- a/casing.cabal
+++ b/casing.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                casing
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            Convert between various source code casing conventions
 description:         Converts between camelCase, PascalCase, kebab-case, and
                      three flavors of snake_case.
