diff --git a/protocol-buffers-descriptor.cabal b/protocol-buffers-descriptor.cabal
--- a/protocol-buffers-descriptor.cabal
+++ b/protocol-buffers-descriptor.cabal
@@ -1,5 +1,5 @@
 name:           protocol-buffers-descriptor
-version:        2.0.6
+version:        2.0.7
 cabal-version:  >= 1.6
 build-type:     Simple
 license:        BSD3
@@ -26,7 +26,7 @@
     description: Choose the new smaller, split-up base package.
 
 Library
-  build-depends: protocol-buffers == 2.0.6,
+  build-depends: protocol-buffers == 2.0.7,
                  bytestring,
                  containers
 
diff --git a/src-auto-generated/Text/DescriptorProtos.hs b/src-auto-generated/Text/DescriptorProtos.hs
--- a/src-auto-generated/Text/DescriptorProtos.hs
+++ b/src-auto-generated/Text/DescriptorProtos.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import Text.DescriptorProtos.FileDescriptorProto (FileDescriptorProto)
 import Text.ProtocolBuffers.Reflections (ProtoInfo)
diff --git a/src-auto-generated/Text/DescriptorProtos/DescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/DescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/DescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/DescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.DescriptorProto.ExtensionRange as DescriptorProtos.DescriptorProto (ExtensionRange)
 import qualified Text.DescriptorProtos.EnumDescriptorProto as DescriptorProtos (EnumDescriptorProto)
@@ -15,7 +16,7 @@
                                        enum_type :: !(P'.Seq DescriptorProtos.EnumDescriptorProto),
                                        extension_range :: !(P'.Seq DescriptorProtos.DescriptorProto.ExtensionRange),
                                        options :: !(P'.Maybe DescriptorProtos.MessageOptions), unknown'field :: !P'.UnknownField}
-                     deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                     deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage DescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/DescriptorProto/ExtensionRange.hs b/src-auto-generated/Text/DescriptorProtos/DescriptorProto/ExtensionRange.hs
--- a/src-auto-generated/Text/DescriptorProtos/DescriptorProto/ExtensionRange.hs
+++ b/src-auto-generated/Text/DescriptorProtos/DescriptorProto/ExtensionRange.hs
@@ -3,10 +3,11 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data ExtensionRange = ExtensionRange{start :: !(P'.Maybe P'.Int32), end :: !(P'.Maybe P'.Int32), unknown'field :: !P'.UnknownField}
-                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage ExtensionRange where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/EnumDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/EnumDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/EnumDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/EnumDescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.EnumOptions as DescriptorProtos (EnumOptions)
 import qualified Text.DescriptorProtos.EnumValueDescriptorProto as DescriptorProtos (EnumValueDescriptorProto)
@@ -11,7 +12,7 @@
                                                value :: !(P'.Seq DescriptorProtos.EnumValueDescriptorProto),
                                                options :: !(P'.Maybe DescriptorProtos.EnumOptions),
                                                unknown'field :: !P'.UnknownField}
-                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage EnumDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/EnumOptions.hs b/src-auto-generated/Text/DescriptorProtos/EnumOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/EnumOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/EnumOptions.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
  
 data EnumOptions = EnumOptions{uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption), ext'field :: !P'.ExtField,
                                unknown'field :: !P'.UnknownField}
-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage EnumOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/EnumValueDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/EnumValueDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/EnumValueDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/EnumValueDescriptorProto.hs
@@ -3,13 +3,14 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.EnumValueOptions as DescriptorProtos (EnumValueOptions)
  
 data EnumValueDescriptorProto = EnumValueDescriptorProto{name :: !(P'.Maybe P'.Utf8), number :: !(P'.Maybe P'.Int32),
                                                          options :: !(P'.Maybe DescriptorProtos.EnumValueOptions),
                                                          unknown'field :: !P'.UnknownField}
-                              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage EnumValueDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/EnumValueOptions.hs b/src-auto-generated/Text/DescriptorProtos/EnumValueOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/EnumValueOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/EnumValueOptions.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
  
 data EnumValueOptions = EnumValueOptions{uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption),
                                          ext'field :: !P'.ExtField, unknown'field :: !P'.UnknownField}
-                      deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                      deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage EnumValueOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.FieldDescriptorProto.Label as DescriptorProtos.FieldDescriptorProto (Label)
 import qualified Text.DescriptorProtos.FieldDescriptorProto.Type as DescriptorProtos.FieldDescriptorProto (Type)
@@ -15,7 +16,7 @@
                                                  default_value :: !(P'.Maybe P'.Utf8),
                                                  options :: !(P'.Maybe DescriptorProtos.FieldOptions),
                                                  unknown'field :: !P'.UnknownField}
-                          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                          deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage FieldDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Label.hs b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Label.hs
--- a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Label.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Label.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data Label = LABEL_OPTIONAL
            | LABEL_REQUIRED
            | LABEL_REPEATED
-           deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+           deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable Label
  
diff --git a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Type.hs b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Type.hs
--- a/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Type.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FieldDescriptorProto/Type.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data Type = TYPE_DOUBLE
@@ -23,7 +24,7 @@
           | TYPE_SFIXED64
           | TYPE_SINT32
           | TYPE_SINT64
-          deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+          deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable Type
  
diff --git a/src-auto-generated/Text/DescriptorProtos/FieldOptions.hs b/src-auto-generated/Text/DescriptorProtos/FieldOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/FieldOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FieldOptions.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.FieldOptions.CType as DescriptorProtos.FieldOptions (CType)
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
@@ -11,7 +12,7 @@
                                  deprecated :: !(P'.Maybe P'.Bool), experimental_map_key :: !(P'.Maybe P'.Utf8),
                                  uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption), ext'field :: !P'.ExtField,
                                  unknown'field :: !P'.UnknownField}
-                  deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                  deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage FieldOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FieldOptions/CType.hs b/src-auto-generated/Text/DescriptorProtos/FieldOptions/CType.hs
--- a/src-auto-generated/Text/DescriptorProtos/FieldOptions/CType.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FieldOptions/CType.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data CType = STRING
            | CORD
            | STRING_PIECE
-           deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+           deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable CType
  
diff --git a/src-auto-generated/Text/DescriptorProtos/FileDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/FileDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/FileDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FileDescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.DescriptorProto as DescriptorProtos (DescriptorProto)
 import qualified Text.DescriptorProtos.EnumDescriptorProto as DescriptorProtos (EnumDescriptorProto)
@@ -20,7 +21,7 @@
                                                options :: !(P'.Maybe DescriptorProtos.FileOptions),
                                                source_code_info :: !(P'.Maybe DescriptorProtos.SourceCodeInfo),
                                                unknown'field :: !P'.UnknownField}
-                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage FileDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FileDescriptorSet.hs b/src-auto-generated/Text/DescriptorProtos/FileDescriptorSet.hs
--- a/src-auto-generated/Text/DescriptorProtos/FileDescriptorSet.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FileDescriptorSet.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.FileDescriptorProto as DescriptorProtos (FileDescriptorProto)
  
 data FileDescriptorSet = FileDescriptorSet{file :: !(P'.Seq DescriptorProtos.FileDescriptorProto),
                                            unknown'field :: !P'.UnknownField}
-                       deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                       deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage FileDescriptorSet where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FileOptions.hs b/src-auto-generated/Text/DescriptorProtos/FileOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/FileOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FileOptions.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.FileOptions.OptimizeMode as DescriptorProtos.FileOptions (OptimizeMode)
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
@@ -14,7 +15,7 @@
                                py_generic_services :: !(P'.Maybe P'.Bool),
                                uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption), ext'field :: !P'.ExtField,
                                unknown'field :: !P'.UnknownField}
-                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                 deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage FileOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/FileOptions/OptimizeMode.hs b/src-auto-generated/Text/DescriptorProtos/FileOptions/OptimizeMode.hs
--- a/src-auto-generated/Text/DescriptorProtos/FileOptions/OptimizeMode.hs
+++ b/src-auto-generated/Text/DescriptorProtos/FileOptions/OptimizeMode.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (.))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data OptimizeMode = SPEED
                   | CODE_SIZE
                   | LITE_RUNTIME
-                  deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                  deriving (Prelude'.Read, Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.Mergeable OptimizeMode
  
diff --git a/src-auto-generated/Text/DescriptorProtos/MessageOptions.hs b/src-auto-generated/Text/DescriptorProtos/MessageOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/MessageOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/MessageOptions.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
  
@@ -10,7 +11,7 @@
                                      no_standard_descriptor_accessor :: !(P'.Maybe P'.Bool),
                                      uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption),
                                      ext'field :: !P'.ExtField, unknown'field :: !P'.UnknownField}
-                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage MessageOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/MethodDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/MethodDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/MethodDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/MethodDescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.MethodOptions as DescriptorProtos (MethodOptions)
  
@@ -10,7 +11,7 @@
                                                    output_type :: !(P'.Maybe P'.Utf8),
                                                    options :: !(P'.Maybe DescriptorProtos.MethodOptions),
                                                    unknown'field :: !P'.UnknownField}
-                           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                           deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage MethodDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/MethodOptions.hs b/src-auto-generated/Text/DescriptorProtos/MethodOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/MethodOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/MethodOptions.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
  
 data MethodOptions = MethodOptions{uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption),
                                    ext'field :: !P'.ExtField, unknown'field :: !P'.UnknownField}
-                   deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                   deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage MethodOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/ServiceDescriptorProto.hs b/src-auto-generated/Text/DescriptorProtos/ServiceDescriptorProto.hs
--- a/src-auto-generated/Text/DescriptorProtos/ServiceDescriptorProto.hs
+++ b/src-auto-generated/Text/DescriptorProtos/ServiceDescriptorProto.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.MethodDescriptorProto as DescriptorProtos (MethodDescriptorProto)
 import qualified Text.DescriptorProtos.ServiceOptions as DescriptorProtos (ServiceOptions)
@@ -11,7 +12,7 @@
                                                      method :: !(P'.Seq DescriptorProtos.MethodDescriptorProto),
                                                      options :: !(P'.Maybe DescriptorProtos.ServiceOptions),
                                                      unknown'field :: !P'.UnknownField}
-                            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                            deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage ServiceDescriptorProto where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/ServiceOptions.hs b/src-auto-generated/Text/DescriptorProtos/ServiceOptions.hs
--- a/src-auto-generated/Text/DescriptorProtos/ServiceOptions.hs
+++ b/src-auto-generated/Text/DescriptorProtos/ServiceOptions.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/), (==), (<=), (&&))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption as DescriptorProtos (UninterpretedOption)
  
 data ServiceOptions = ServiceOptions{uninterpreted_option :: !(P'.Seq DescriptorProtos.UninterpretedOption),
                                      ext'field :: !P'.ExtField, unknown'field :: !P'.UnknownField}
-                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.ExtendMessage ServiceOptions where
   getExtField = ext'field
diff --git a/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo.hs b/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo.hs
--- a/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo.hs
+++ b/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo.hs
@@ -3,12 +3,13 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.SourceCodeInfo.Location as DescriptorProtos.SourceCodeInfo (Location)
  
 data SourceCodeInfo = SourceCodeInfo{location :: !(P'.Seq DescriptorProtos.SourceCodeInfo.Location),
                                      unknown'field :: !P'.UnknownField}
-                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                    deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage SourceCodeInfo where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo/Location.hs b/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo/Location.hs
--- a/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo/Location.hs
+++ b/src-auto-generated/Text/DescriptorProtos/SourceCodeInfo/Location.hs
@@ -3,10 +3,11 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data Location = Location{path :: !(P'.Seq P'.Int32), span :: !(P'.Seq P'.Int32), unknown'field :: !P'.UnknownField}
-              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage Location where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/UninterpretedOption.hs b/src-auto-generated/Text/DescriptorProtos/UninterpretedOption.hs
--- a/src-auto-generated/Text/DescriptorProtos/UninterpretedOption.hs
+++ b/src-auto-generated/Text/DescriptorProtos/UninterpretedOption.hs
@@ -3,6 +3,7 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
 import qualified Text.DescriptorProtos.UninterpretedOption.NamePart as DescriptorProtos.UninterpretedOption (NamePart)
  
@@ -11,7 +12,7 @@
                                                negative_int_value :: !(P'.Maybe P'.Int64), double_value :: !(P'.Maybe P'.Double),
                                                string_value :: !(P'.Maybe P'.ByteString), aggregate_value :: !(P'.Maybe P'.Utf8),
                                                unknown'field :: !P'.UnknownField}
-                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+                         deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage UninterpretedOption where
   getUnknownField = unknown'field
diff --git a/src-auto-generated/Text/DescriptorProtos/UninterpretedOption/NamePart.hs b/src-auto-generated/Text/DescriptorProtos/UninterpretedOption/NamePart.hs
--- a/src-auto-generated/Text/DescriptorProtos/UninterpretedOption/NamePart.hs
+++ b/src-auto-generated/Text/DescriptorProtos/UninterpretedOption/NamePart.hs
@@ -3,10 +3,11 @@
 import Prelude ((+), (/))
 import qualified Prelude as Prelude'
 import qualified Data.Typeable as Prelude'
+import qualified Data.Data as Prelude'
 import qualified Text.ProtocolBuffers.Header as P'
  
 data NamePart = NamePart{name_part :: !P'.Utf8, is_extension :: !P'.Bool, unknown'field :: !P'.UnknownField}
-              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable)
+              deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
  
 instance P'.UnknownMessage NamePart where
   getUnknownField = unknown'field
