diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+version 0.3.2:
+  - Add missing S case to eq.
+
 version 0.3.1:
   - Fix a bug in the Template Haskell code (thanks to lists@snowlion.nl)
 
diff --git a/regular.cabal b/regular.cabal
--- a/regular.cabal
+++ b/regular.cabal
@@ -1,5 +1,5 @@
 name:                   regular
-version:                0.3.1
+version:                0.3.2
 synopsis:               Generic programming library for regular datatypes.
 description:
 
diff --git a/src/Generics/Regular/Functions/ConNames.hs b/src/Generics/Regular/Functions/ConNames.hs
--- a/src/Generics/Regular/Functions/ConNames.hs
+++ b/src/Generics/Regular/Functions/ConNames.hs
@@ -38,6 +38,9 @@
 instance (ConNames f, Constructor c) => ConNames (C c f) where
     hconNames (x :: (C c f) a) = [conName x]
 
+instance ConNames (S s f) where
+    hconNames _ = []
+
 instance (ConNames f, ConNames g) => ConNames (f :*: g) where
     hconNames _ = []
 
diff --git a/src/Generics/Regular/Functions/Eq.hs b/src/Generics/Regular/Functions/Eq.hs
--- a/src/Generics/Regular/Functions/Eq.hs
+++ b/src/Generics/Regular/Functions/Eq.hs
@@ -49,5 +49,8 @@
 instance Eq f => Eq (C c f) where
   eqf f (C x) (C y) = eqf f x y
 
+instance Eq f => Eq (S s f) where
+  eqf f (S x) (S y) = eqf f x y
+
 eq :: (Regular a, Eq (PF a)) => a -> a -> Bool
 eq x y = eqf eq (from x) (from y)
