diff --git a/lucid.cabal b/lucid.cabal
--- a/lucid.cabal
+++ b/lucid.cabal
@@ -1,5 +1,5 @@
 name:                lucid
-version:             2.9.1
+version:             2.9.2
 synopsis:            Clear to write, read and edit DSL for HTML
 description:         Clear to write, read and edit DSL for HTML. See the 'Lucid' module
                      for description and documentation.
@@ -25,6 +25,7 @@
                    , blaze-builder
                    , bytestring
                    , containers
+                   , hashable
                    , mtl
                    , text
                    , transformers
diff --git a/src/Lucid/Base.hs b/src/Lucid/Base.hs
--- a/src/Lucid/Base.hs
+++ b/src/Lucid/Base.hs
@@ -41,6 +41,7 @@
 import           Data.ByteString.Lazy (ByteString)
 import qualified Data.ByteString.Lazy as L
 import           Data.Functor.Identity
+import           Data.Hashable (Hashable(..))
 import           Data.HashMap.Strict (HashMap)
 import qualified Data.HashMap.Strict as M
 import           Data.Monoid
@@ -55,6 +56,9 @@
 -- | A simple attribute. Don't use the constructor, use 'makeAttribute'.
 data Attribute = Attribute !Text !Text
   deriving (Show,Eq)
+
+instance Hashable Attribute where
+  hashWithSalt salt (Attribute a b) = salt `hashWithSalt` a `hashWithSalt` b
 
 -- | Simple HTML builder type. Defined in terms of 'HtmlT'. Check out
 -- that type for instance information.
