proto-lens-protoc (empty) → 0.1.0.0
raw patch · 10 files changed
+6539/−0 lines, 10 filesdep +Cabaldep +basedep +bytestringsetup-changed
Dependencies added: Cabal, base, bytestring, containers, data-default-class, directory, filepath, haskell-src-exts, lens-family, process, proto-lens, text
Files
- LICENSE +30/−0
- Setup.hs +2/−0
- proto-lens-protoc.cabal +65/−0
- src/Bootstrap/Proto/Google/Protobuf/Compiler/Plugin.hs +386/−0
- src/Bootstrap/Proto/Google/Protobuf/Descriptor.hs +4833/−0
- src/Combinators.hs +98/−0
- src/Data/ProtoLens/Setup.hs +112/−0
- src/Definitions.hs +223/−0
- src/Generate.hs +648/−0
- src/protoc-gen-haskell.hs +142/−0
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2016, Google Inc.++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Google Inc. nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ proto-lens-protoc.cabal view
@@ -0,0 +1,65 @@+name: proto-lens-protoc+version: 0.1.0.0+synopsis: Protocol buffer compiler for the proto-lens library.+description:+ Turn protocol buffer files (.proto) into Haskell files (.hs) which+ can be used with the proto-lens package.+license: BSD3+license-file: LICENSE+author: Judah Jacobson+maintainer: judahjacobson@google.com+copyright: Google Inc.+category: Data+build-type: Simple+cabal-version: >=1.21++library+ exposed-modules: Data.ProtoLens.Setup+ default-language: Haskell2010+ hs-source-dirs: src+ build-depends:+ Cabal == 1.22.*+ , base == 4.8.*+ , bytestring == 0.10.*+ , containers == 0.5.*+ , data-default-class == 0.0.*+ , directory == 1.2.*+ , filepath == 1.4.*+ , lens-family == 1.2.*+ , process == 1.2.*+ , proto-lens == 0.1.0.0+ , text == 1.2.*+ reexported-modules:+ -- Modules that are needed by the generated Haskell files:+ Data.ByteString+ , Data.Default.Class+ , Data.Map+ , Data.ProtoLens+ , Data.ProtoLens.Message.Enum+ , Data.Text+ , Lens.Family2+ , Lens.Family2.Unchecked++executable proto-lens-protoc+ main-is: protoc-gen-haskell.hs+ other-modules:+ Bootstrap.Proto.Google.Protobuf.Compiler.Plugin+ Bootstrap.Proto.Google.Protobuf.Descriptor+ Combinators+ Definitions+ Generate++ build-depends:+ base == 4.8.*+ , bytestring == 0.10.*+ , containers == 0.5.*+ , data-default-class == 0.0.*+ , filepath == 1.4.*+ , haskell-src-exts == 1.17.*+ , lens-family == 1.2.*+ -- Specify an exact version of `proto-lens`, since it's tied closely+ -- to the generated code.+ , proto-lens == 0.1.0.0+ , text == 1.2.*+ hs-source-dirs: src+ default-language: Haskell2010
+ src/Bootstrap/Proto/Google/Protobuf/Compiler/Plugin.hs view
@@ -0,0 +1,386 @@+{- This file was auto-generated from google/protobuf/compiler/plugin.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,+ MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-unused-imports#-}+module Bootstrap.Proto.Google.Protobuf.Compiler.Plugin where+import qualified Prelude+import qualified Data.ProtoLens+import qualified Data.ProtoLens.Message.Enum+import qualified Lens.Family2+import qualified Lens.Family2.Unchecked+import qualified Data.Default.Class+import qualified Data.Text+import qualified Data.Int+import qualified Data.Word+import qualified Data.Map+import qualified Data.ByteString+import qualified Bootstrap.Proto.Google.Protobuf.Descriptor++data CodeGeneratorRequest = CodeGeneratorRequest{_CodeGeneratorRequest'fileToGenerate+ :: [Data.Text.Text],+ _CodeGeneratorRequest'parameter ::+ Prelude.Maybe Data.Text.Text,+ _CodeGeneratorRequest'protoFile ::+ [Bootstrap.Proto.Google.Protobuf.Descriptor.FileDescriptorProto]}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "fileToGenerate" CodeGeneratorRequest =+ [Data.Text.Text]++instance Data.ProtoLens.HasField "fileToGenerate"+ CodeGeneratorRequest CodeGeneratorRequest where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorRequest'fileToGenerate+ (\ x__ y__ -> x__{_CodeGeneratorRequest'fileToGenerate = y__})++type instance Data.ProtoLens.Field "parameter" CodeGeneratorRequest+ = Data.Text.Text++instance Data.ProtoLens.HasField "parameter" CodeGeneratorRequest+ CodeGeneratorRequest where+ field _+ = (Prelude..) maybe'parameter+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'parameter" CodeGeneratorRequest =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'parameter"+ CodeGeneratorRequest CodeGeneratorRequest where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorRequest'parameter+ (\ x__ y__ -> x__{_CodeGeneratorRequest'parameter = y__})++type instance Data.ProtoLens.Field "protoFile" CodeGeneratorRequest+ = [Bootstrap.Proto.Google.Protobuf.Descriptor.FileDescriptorProto]++instance Data.ProtoLens.HasField "protoFile" CodeGeneratorRequest+ CodeGeneratorRequest where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorRequest'protoFile+ (\ x__ y__ -> x__{_CodeGeneratorRequest'protoFile = y__})++instance Data.Default.Class.Default CodeGeneratorRequest where+ def+ = CodeGeneratorRequest{_CodeGeneratorRequest'fileToGenerate = [],+ _CodeGeneratorRequest'parameter = Prelude.Nothing,+ _CodeGeneratorRequest'protoFile = []}++instance Data.ProtoLens.Message CodeGeneratorRequest where+ descriptor+ = let fileToGenerate__field_descriptor+ = Data.ProtoLens.FieldDescriptor "file_to_generate"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ fileToGenerate)+ parameter__field_descriptor+ = Data.ProtoLens.FieldDescriptor "parameter"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'parameter)+ protoFile__field_descriptor+ = Data.ProtoLens.FieldDescriptor "proto_file"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor+ Bootstrap.Proto.Google.Protobuf.Descriptor.FileDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked protoFile)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, fileToGenerate__field_descriptor),+ (Data.ProtoLens.Tag 2, parameter__field_descriptor),+ (Data.ProtoLens.Tag 15, protoFile__field_descriptor)])+ (Data.Map.fromList+ [("file_to_generate", fileToGenerate__field_descriptor),+ ("parameter", parameter__field_descriptor),+ ("proto_file", protoFile__field_descriptor)])++data CodeGeneratorResponse = CodeGeneratorResponse{_CodeGeneratorResponse'error+ :: Prelude.Maybe Data.Text.Text,+ _CodeGeneratorResponse'file ::+ [CodeGeneratorResponse'File]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "error" CodeGeneratorResponse =+ Data.Text.Text++instance Data.ProtoLens.HasField "error" CodeGeneratorResponse+ CodeGeneratorResponse where+ field _+ = (Prelude..) maybe'error+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'error" CodeGeneratorResponse =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'error"+ CodeGeneratorResponse CodeGeneratorResponse where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorResponse'error+ (\ x__ y__ -> x__{_CodeGeneratorResponse'error = y__})++type instance Data.ProtoLens.Field "file" CodeGeneratorResponse =+ [CodeGeneratorResponse'File]++instance Data.ProtoLens.HasField "file" CodeGeneratorResponse+ CodeGeneratorResponse where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorResponse'file+ (\ x__ y__ -> x__{_CodeGeneratorResponse'file = y__})++instance Data.Default.Class.Default CodeGeneratorResponse where+ def+ = CodeGeneratorResponse{_CodeGeneratorResponse'error =+ Prelude.Nothing,+ _CodeGeneratorResponse'file = []}++instance Data.ProtoLens.Message CodeGeneratorResponse where+ descriptor+ = let error__field_descriptor+ = Data.ProtoLens.FieldDescriptor "error"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'error)+ file__field_descriptor+ = Data.ProtoLens.FieldDescriptor "file"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor CodeGeneratorResponse'File)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked file)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, error__field_descriptor),+ (Data.ProtoLens.Tag 15, file__field_descriptor)])+ (Data.Map.fromList+ [("error", error__field_descriptor),+ ("file", file__field_descriptor)])++data CodeGeneratorResponse'File = CodeGeneratorResponse'File{_CodeGeneratorResponse'File'name+ :: Prelude.Maybe Data.Text.Text,+ _CodeGeneratorResponse'File'insertionPoint+ :: Prelude.Maybe Data.Text.Text,+ _CodeGeneratorResponse'File'content ::+ Prelude.Maybe Data.Text.Text}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "name" CodeGeneratorResponse'File =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" CodeGeneratorResponse'File+ CodeGeneratorResponse'File where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" CodeGeneratorResponse'File =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name"+ CodeGeneratorResponse'File CodeGeneratorResponse'File where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorResponse'File'name+ (\ x__ y__ -> x__{_CodeGeneratorResponse'File'name = y__})++type instance+ Data.ProtoLens.Field "insertionPoint" CodeGeneratorResponse'File =+ Data.Text.Text++instance Data.ProtoLens.HasField "insertionPoint"+ CodeGeneratorResponse'File CodeGeneratorResponse'File where+ field _+ = (Prelude..) maybe'insertionPoint+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'insertionPoint"+ CodeGeneratorResponse'File+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'insertionPoint"+ CodeGeneratorResponse'File CodeGeneratorResponse'File where+ field _+ = Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'insertionPoint+ (\ x__ y__ ->+ x__{_CodeGeneratorResponse'File'insertionPoint = y__})++type instance+ Data.ProtoLens.Field "content" CodeGeneratorResponse'File =+ Data.Text.Text++instance Data.ProtoLens.HasField "content"+ CodeGeneratorResponse'File CodeGeneratorResponse'File where+ field _+ = (Prelude..) maybe'content+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'content" CodeGeneratorResponse'File =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'content"+ CodeGeneratorResponse'File CodeGeneratorResponse'File where+ field _+ = Lens.Family2.Unchecked.lens _CodeGeneratorResponse'File'content+ (\ x__ y__ -> x__{_CodeGeneratorResponse'File'content = y__})++instance Data.Default.Class.Default CodeGeneratorResponse'File+ where+ def+ = CodeGeneratorResponse'File{_CodeGeneratorResponse'File'name =+ Prelude.Nothing,+ _CodeGeneratorResponse'File'insertionPoint = Prelude.Nothing,+ _CodeGeneratorResponse'File'content = Prelude.Nothing}++instance Data.ProtoLens.Message CodeGeneratorResponse'File where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ insertionPoint__field_descriptor+ = Data.ProtoLens.FieldDescriptor "insertion_point"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'insertionPoint)+ content__field_descriptor+ = Data.ProtoLens.FieldDescriptor "content"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'content)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, insertionPoint__field_descriptor),+ (Data.ProtoLens.Tag 15, content__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("insertion_point", insertionPoint__field_descriptor),+ ("content", content__field_descriptor)])++content ::+ forall msg msg' . Data.ProtoLens.HasField "content" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "content" msg)+ (Data.ProtoLens.Field "content" msg')+content+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "content")++error ::+ forall msg msg' . Data.ProtoLens.HasField "error" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "error" msg)+ (Data.ProtoLens.Field "error" msg')+error+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "error")++file ::+ forall msg msg' . Data.ProtoLens.HasField "file" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "file" msg)+ (Data.ProtoLens.Field "file" msg')+file+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "file")++fileToGenerate ::+ forall msg msg' .+ Data.ProtoLens.HasField "fileToGenerate" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "fileToGenerate" msg)+ (Data.ProtoLens.Field "fileToGenerate" msg')+fileToGenerate+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "fileToGenerate")++insertionPoint ::+ forall msg msg' .+ Data.ProtoLens.HasField "insertionPoint" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "insertionPoint" msg)+ (Data.ProtoLens.Field "insertionPoint" msg')+insertionPoint+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "insertionPoint")++maybe'content ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'content" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'content" msg)+ (Data.ProtoLens.Field "maybe'content" msg')+maybe'content+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'content")++maybe'error ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'error" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'error" msg)+ (Data.ProtoLens.Field "maybe'error" msg')+maybe'error+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'error")++maybe'insertionPoint ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'insertionPoint" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'insertionPoint" msg)+ (Data.ProtoLens.Field "maybe'insertionPoint" msg')+maybe'insertionPoint+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'insertionPoint")++maybe'name ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'name" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'name" msg)+ (Data.ProtoLens.Field "maybe'name" msg')+maybe'name+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'name")++maybe'parameter ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'parameter" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'parameter" msg)+ (Data.ProtoLens.Field "maybe'parameter" msg')+maybe'parameter+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'parameter")++name ::+ forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)+ (Data.ProtoLens.Field "name" msg')+name+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")++parameter ::+ forall msg msg' . Data.ProtoLens.HasField "parameter" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "parameter" msg)+ (Data.ProtoLens.Field "parameter" msg')+parameter+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "parameter")++protoFile ::+ forall msg msg' . Data.ProtoLens.HasField "protoFile" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "protoFile" msg)+ (Data.ProtoLens.Field "protoFile" msg')+protoFile+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "protoFile")
+ src/Bootstrap/Proto/Google/Protobuf/Descriptor.hs view
@@ -0,0 +1,4833 @@+{- This file was auto-generated from google/protobuf/descriptor.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies,+ MultiParamTypeClasses, FlexibleContexts, FlexibleInstances #-}+{-# OPTIONS_GHC -fno-warn-unused-imports#-}+module Bootstrap.Proto.Google.Protobuf.Descriptor where+import qualified Prelude+import qualified Data.ProtoLens+import qualified Data.ProtoLens.Message.Enum+import qualified Lens.Family2+import qualified Lens.Family2.Unchecked+import qualified Data.Default.Class+import qualified Data.Text+import qualified Data.Int+import qualified Data.Word+import qualified Data.Map+import qualified Data.ByteString++data DescriptorProto = DescriptorProto{_DescriptorProto'name ::+ Prelude.Maybe Data.Text.Text,+ _DescriptorProto'field :: [FieldDescriptorProto],+ _DescriptorProto'extension :: [FieldDescriptorProto],+ _DescriptorProto'nestedType :: [DescriptorProto],+ _DescriptorProto'enumType :: [EnumDescriptorProto],+ _DescriptorProto'extensionRange ::+ [DescriptorProto'ExtensionRange],+ _DescriptorProto'oneofDecl :: [OneofDescriptorProto],+ _DescriptorProto'options :: Prelude.Maybe MessageOptions,+ _DescriptorProto'reservedRange ::+ [DescriptorProto'ReservedRange],+ _DescriptorProto'reservedName :: [Data.Text.Text]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" DescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" DescriptorProto+ DescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'name" DescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'name+ (\ x__ y__ -> x__{_DescriptorProto'name = y__})++type instance Data.ProtoLens.Field "field" DescriptorProto =+ [FieldDescriptorProto]++instance Data.ProtoLens.HasField "field" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'field+ (\ x__ y__ -> x__{_DescriptorProto'field = y__})++type instance Data.ProtoLens.Field "extension" DescriptorProto =+ [FieldDescriptorProto]++instance Data.ProtoLens.HasField "extension" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'extension+ (\ x__ y__ -> x__{_DescriptorProto'extension = y__})++type instance Data.ProtoLens.Field "nestedType" DescriptorProto =+ [DescriptorProto]++instance Data.ProtoLens.HasField "nestedType" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'nestedType+ (\ x__ y__ -> x__{_DescriptorProto'nestedType = y__})++type instance Data.ProtoLens.Field "enumType" DescriptorProto =+ [EnumDescriptorProto]++instance Data.ProtoLens.HasField "enumType" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'enumType+ (\ x__ y__ -> x__{_DescriptorProto'enumType = y__})++type instance Data.ProtoLens.Field "extensionRange" DescriptorProto+ = [DescriptorProto'ExtensionRange]++instance Data.ProtoLens.HasField "extensionRange" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'extensionRange+ (\ x__ y__ -> x__{_DescriptorProto'extensionRange = y__})++type instance Data.ProtoLens.Field "oneofDecl" DescriptorProto =+ [OneofDescriptorProto]++instance Data.ProtoLens.HasField "oneofDecl" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'oneofDecl+ (\ x__ y__ -> x__{_DescriptorProto'oneofDecl = y__})++type instance Data.ProtoLens.Field "options" DescriptorProto =+ MessageOptions++instance Data.ProtoLens.HasField "options" DescriptorProto+ DescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance Data.ProtoLens.Field "maybe'options" DescriptorProto+ = Prelude.Maybe MessageOptions++instance Data.ProtoLens.HasField "maybe'options" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'options+ (\ x__ y__ -> x__{_DescriptorProto'options = y__})++type instance Data.ProtoLens.Field "reservedRange" DescriptorProto+ = [DescriptorProto'ReservedRange]++instance Data.ProtoLens.HasField "reservedRange" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'reservedRange+ (\ x__ y__ -> x__{_DescriptorProto'reservedRange = y__})++type instance Data.ProtoLens.Field "reservedName" DescriptorProto =+ [Data.Text.Text]++instance Data.ProtoLens.HasField "reservedName" DescriptorProto+ DescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'reservedName+ (\ x__ y__ -> x__{_DescriptorProto'reservedName = y__})++instance Data.Default.Class.Default DescriptorProto where+ def+ = DescriptorProto{_DescriptorProto'name = Prelude.Nothing,+ _DescriptorProto'field = [], _DescriptorProto'extension = [],+ _DescriptorProto'nestedType = [], _DescriptorProto'enumType = [],+ _DescriptorProto'extensionRange = [],+ _DescriptorProto'oneofDecl = [],+ _DescriptorProto'options = Prelude.Nothing,+ _DescriptorProto'reservedRange = [],+ _DescriptorProto'reservedName = []}++instance Data.ProtoLens.Message DescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ field__field_descriptor+ = Data.ProtoLens.FieldDescriptor "field"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked field)+ extension__field_descriptor+ = Data.ProtoLens.FieldDescriptor "extension"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked extension)+ nestedType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "nested_type"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked nestedType)+ enumType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "enum_type"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked enumType)+ extensionRange__field_descriptor+ = Data.ProtoLens.FieldDescriptor "extension_range"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ExtensionRange)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ extensionRange)+ oneofDecl__field_descriptor+ = Data.ProtoLens.FieldDescriptor "oneof_decl"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor OneofDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked oneofDecl)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor MessageOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ reservedRange__field_descriptor+ = Data.ProtoLens.FieldDescriptor "reserved_range"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ReservedRange)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ reservedRange)+ reservedName__field_descriptor+ = Data.ProtoLens.FieldDescriptor "reserved_name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked reservedName)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, field__field_descriptor),+ (Data.ProtoLens.Tag 6, extension__field_descriptor),+ (Data.ProtoLens.Tag 3, nestedType__field_descriptor),+ (Data.ProtoLens.Tag 4, enumType__field_descriptor),+ (Data.ProtoLens.Tag 5, extensionRange__field_descriptor),+ (Data.ProtoLens.Tag 8, oneofDecl__field_descriptor),+ (Data.ProtoLens.Tag 7, options__field_descriptor),+ (Data.ProtoLens.Tag 9, reservedRange__field_descriptor),+ (Data.ProtoLens.Tag 10, reservedName__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("field", field__field_descriptor),+ ("extension", extension__field_descriptor),+ ("nested_type", nestedType__field_descriptor),+ ("enum_type", enumType__field_descriptor),+ ("extension_range", extensionRange__field_descriptor),+ ("oneof_decl", oneofDecl__field_descriptor),+ ("options", options__field_descriptor),+ ("reserved_range", reservedRange__field_descriptor),+ ("reserved_name", reservedName__field_descriptor)])++data DescriptorProto'ExtensionRange = DescriptorProto'ExtensionRange{_DescriptorProto'ExtensionRange'start+ ::+ Prelude.Maybe Data.Int.Int32,+ _DescriptorProto'ExtensionRange'end+ ::+ Prelude.Maybe Data.Int.Int32}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "start" DescriptorProto'ExtensionRange =+ Data.Int.Int32++instance Data.ProtoLens.HasField "start"+ DescriptorProto'ExtensionRange DescriptorProto'ExtensionRange where+ field _+ = (Prelude..) maybe'start+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'start" DescriptorProto'ExtensionRange =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'start"+ DescriptorProto'ExtensionRange DescriptorProto'ExtensionRange where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'ExtensionRange'start+ (\ x__ y__ -> x__{_DescriptorProto'ExtensionRange'start = y__})++type instance+ Data.ProtoLens.Field "end" DescriptorProto'ExtensionRange =+ Data.Int.Int32++instance Data.ProtoLens.HasField "end"+ DescriptorProto'ExtensionRange DescriptorProto'ExtensionRange where+ field _+ = (Prelude..) maybe'end+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'end" DescriptorProto'ExtensionRange =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'end"+ DescriptorProto'ExtensionRange DescriptorProto'ExtensionRange where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'ExtensionRange'end+ (\ x__ y__ -> x__{_DescriptorProto'ExtensionRange'end = y__})++instance Data.Default.Class.Default DescriptorProto'ExtensionRange+ where+ def+ = DescriptorProto'ExtensionRange{_DescriptorProto'ExtensionRange'start+ = Prelude.Nothing,+ _DescriptorProto'ExtensionRange'end = Prelude.Nothing}++instance Data.ProtoLens.Message DescriptorProto'ExtensionRange+ where+ descriptor+ = let start__field_descriptor+ = Data.ProtoLens.FieldDescriptor "start"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'start)+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor "end"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'end)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, start__field_descriptor),+ (Data.ProtoLens.Tag 2, end__field_descriptor)])+ (Data.Map.fromList+ [("start", start__field_descriptor),+ ("end", end__field_descriptor)])++data DescriptorProto'ReservedRange = DescriptorProto'ReservedRange{_DescriptorProto'ReservedRange'start+ :: Prelude.Maybe Data.Int.Int32,+ _DescriptorProto'ReservedRange'end+ :: Prelude.Maybe Data.Int.Int32}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "start" DescriptorProto'ReservedRange =+ Data.Int.Int32++instance Data.ProtoLens.HasField "start"+ DescriptorProto'ReservedRange DescriptorProto'ReservedRange where+ field _+ = (Prelude..) maybe'start+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'start" DescriptorProto'ReservedRange =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'start"+ DescriptorProto'ReservedRange DescriptorProto'ReservedRange where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'ReservedRange'start+ (\ x__ y__ -> x__{_DescriptorProto'ReservedRange'start = y__})++type instance+ Data.ProtoLens.Field "end" DescriptorProto'ReservedRange =+ Data.Int.Int32++instance Data.ProtoLens.HasField "end"+ DescriptorProto'ReservedRange DescriptorProto'ReservedRange where+ field _+ = (Prelude..) maybe'end+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'end" DescriptorProto'ReservedRange =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'end"+ DescriptorProto'ReservedRange DescriptorProto'ReservedRange where+ field _+ = Lens.Family2.Unchecked.lens _DescriptorProto'ReservedRange'end+ (\ x__ y__ -> x__{_DescriptorProto'ReservedRange'end = y__})++instance Data.Default.Class.Default DescriptorProto'ReservedRange+ where+ def+ = DescriptorProto'ReservedRange{_DescriptorProto'ReservedRange'start+ = Prelude.Nothing,+ _DescriptorProto'ReservedRange'end = Prelude.Nothing}++instance Data.ProtoLens.Message DescriptorProto'ReservedRange where+ descriptor+ = let start__field_descriptor+ = Data.ProtoLens.FieldDescriptor "start"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'start)+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor "end"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'end)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, start__field_descriptor),+ (Data.ProtoLens.Tag 2, end__field_descriptor)])+ (Data.Map.fromList+ [("start", start__field_descriptor),+ ("end", end__field_descriptor)])++data EnumDescriptorProto = EnumDescriptorProto{_EnumDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _EnumDescriptorProto'value ::+ [EnumValueDescriptorProto],+ _EnumDescriptorProto'options ::+ Prelude.Maybe EnumOptions}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" EnumDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" EnumDescriptorProto+ EnumDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'name" EnumDescriptorProto+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" EnumDescriptorProto+ EnumDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumDescriptorProto'name+ (\ x__ y__ -> x__{_EnumDescriptorProto'name = y__})++type instance Data.ProtoLens.Field "value" EnumDescriptorProto =+ [EnumValueDescriptorProto]++instance Data.ProtoLens.HasField "value" EnumDescriptorProto+ EnumDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumDescriptorProto'value+ (\ x__ y__ -> x__{_EnumDescriptorProto'value = y__})++type instance Data.ProtoLens.Field "options" EnumDescriptorProto =+ EnumOptions++instance Data.ProtoLens.HasField "options" EnumDescriptorProto+ EnumDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" EnumDescriptorProto =+ Prelude.Maybe EnumOptions++instance Data.ProtoLens.HasField "maybe'options"+ EnumDescriptorProto EnumDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumDescriptorProto'options+ (\ x__ y__ -> x__{_EnumDescriptorProto'options = y__})++instance Data.Default.Class.Default EnumDescriptorProto where+ def+ = EnumDescriptorProto{_EnumDescriptorProto'name = Prelude.Nothing,+ _EnumDescriptorProto'value = [],+ _EnumDescriptorProto'options = Prelude.Nothing}++instance Data.ProtoLens.Message EnumDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ value__field_descriptor+ = Data.ProtoLens.FieldDescriptor "value"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor EnumValueDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked value)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor EnumOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, value__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("value", value__field_descriptor),+ ("options", options__field_descriptor)])++data EnumOptions = EnumOptions{_EnumOptions'allowAlias ::+ Prelude.Maybe Prelude.Bool,+ _EnumOptions'deprecated :: Prelude.Maybe Prelude.Bool,+ _EnumOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "allowAlias" EnumOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "allowAlias" EnumOptions+ EnumOptions where+ field _+ = (Prelude..) maybe'allowAlias+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'allowAlias" EnumOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'allowAlias" EnumOptions+ EnumOptions where+ field _+ = Lens.Family2.Unchecked.lens _EnumOptions'allowAlias+ (\ x__ y__ -> x__{_EnumOptions'allowAlias = y__})++type instance Data.ProtoLens.Field "deprecated" EnumOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" EnumOptions+ EnumOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'deprecated" EnumOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" EnumOptions+ EnumOptions where+ field _+ = Lens.Family2.Unchecked.lens _EnumOptions'deprecated+ (\ x__ y__ -> x__{_EnumOptions'deprecated = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" EnumOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption" EnumOptions+ EnumOptions where+ field _+ = Lens.Family2.Unchecked.lens _EnumOptions'uninterpretedOption+ (\ x__ y__ -> x__{_EnumOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default EnumOptions where+ def+ = EnumOptions{_EnumOptions'allowAlias = Prelude.Nothing,+ _EnumOptions'deprecated = Prelude.Nothing,+ _EnumOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message EnumOptions where+ descriptor+ = let allowAlias__field_descriptor+ = Data.ProtoLens.FieldDescriptor "allow_alias"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'allowAlias)+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 2, allowAlias__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("allow_alias", allowAlias__field_descriptor),+ ("deprecated", deprecated__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data EnumValueDescriptorProto = EnumValueDescriptorProto{_EnumValueDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _EnumValueDescriptorProto'number ::+ Prelude.Maybe Data.Int.Int32,+ _EnumValueDescriptorProto'options ::+ Prelude.Maybe EnumValueOptions}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" EnumValueDescriptorProto+ = Data.Text.Text++instance Data.ProtoLens.HasField "name" EnumValueDescriptorProto+ EnumValueDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" EnumValueDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name"+ EnumValueDescriptorProto EnumValueDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumValueDescriptorProto'name+ (\ x__ y__ -> x__{_EnumValueDescriptorProto'name = y__})++type instance+ Data.ProtoLens.Field "number" EnumValueDescriptorProto =+ Data.Int.Int32++instance Data.ProtoLens.HasField "number" EnumValueDescriptorProto+ EnumValueDescriptorProto where+ field _+ = (Prelude..) maybe'number+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'number" EnumValueDescriptorProto =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'number"+ EnumValueDescriptorProto EnumValueDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumValueDescriptorProto'number+ (\ x__ y__ -> x__{_EnumValueDescriptorProto'number = y__})++type instance+ Data.ProtoLens.Field "options" EnumValueDescriptorProto =+ EnumValueOptions++instance Data.ProtoLens.HasField "options" EnumValueDescriptorProto+ EnumValueDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" EnumValueDescriptorProto =+ Prelude.Maybe EnumValueOptions++instance Data.ProtoLens.HasField "maybe'options"+ EnumValueDescriptorProto EnumValueDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _EnumValueDescriptorProto'options+ (\ x__ y__ -> x__{_EnumValueDescriptorProto'options = y__})++instance Data.Default.Class.Default EnumValueDescriptorProto where+ def+ = EnumValueDescriptorProto{_EnumValueDescriptorProto'name =+ Prelude.Nothing,+ _EnumValueDescriptorProto'number = Prelude.Nothing,+ _EnumValueDescriptorProto'options = Prelude.Nothing}++instance Data.ProtoLens.Message EnumValueDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ number__field_descriptor+ = Data.ProtoLens.FieldDescriptor "number"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'number)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor EnumValueOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, number__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("number", number__field_descriptor),+ ("options", options__field_descriptor)])++data EnumValueOptions = EnumValueOptions{_EnumValueOptions'deprecated+ :: Prelude.Maybe Prelude.Bool,+ _EnumValueOptions'uninterpretedOption ::+ [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "deprecated" EnumValueOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" EnumValueOptions+ EnumValueOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'deprecated" EnumValueOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated"+ EnumValueOptions EnumValueOptions where+ field _+ = Lens.Family2.Unchecked.lens _EnumValueOptions'deprecated+ (\ x__ y__ -> x__{_EnumValueOptions'deprecated = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" EnumValueOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption"+ EnumValueOptions EnumValueOptions where+ field _+ = Lens.Family2.Unchecked.lens _EnumValueOptions'uninterpretedOption+ (\ x__ y__ -> x__{_EnumValueOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default EnumValueOptions where+ def+ = EnumValueOptions{_EnumValueOptions'deprecated = Prelude.Nothing,+ _EnumValueOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message EnumValueOptions where+ descriptor+ = let deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("deprecated", deprecated__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data FieldDescriptorProto = FieldDescriptorProto{_FieldDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _FieldDescriptorProto'number ::+ Prelude.Maybe Data.Int.Int32,+ _FieldDescriptorProto'label ::+ Prelude.Maybe FieldDescriptorProto'Label,+ _FieldDescriptorProto'type' ::+ Prelude.Maybe FieldDescriptorProto'Type,+ _FieldDescriptorProto'typeName ::+ Prelude.Maybe Data.Text.Text,+ _FieldDescriptorProto'extendee ::+ Prelude.Maybe Data.Text.Text,+ _FieldDescriptorProto'defaultValue ::+ Prelude.Maybe Data.Text.Text,+ _FieldDescriptorProto'oneofIndex ::+ Prelude.Maybe Data.Int.Int32,+ _FieldDescriptorProto'jsonName ::+ Prelude.Maybe Data.Text.Text,+ _FieldDescriptorProto'options ::+ Prelude.Maybe FieldOptions}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" FieldDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" FieldDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'name+ (\ x__ y__ -> x__{_FieldDescriptorProto'name = y__})++type instance Data.ProtoLens.Field "number" FieldDescriptorProto =+ Data.Int.Int32++instance Data.ProtoLens.HasField "number" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'number+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'number" FieldDescriptorProto =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'number"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'number+ (\ x__ y__ -> x__{_FieldDescriptorProto'number = y__})++type instance Data.ProtoLens.Field "label" FieldDescriptorProto =+ FieldDescriptorProto'Label++instance Data.ProtoLens.HasField "label" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'label+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'label" FieldDescriptorProto =+ Prelude.Maybe FieldDescriptorProto'Label++instance Data.ProtoLens.HasField "maybe'label" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'label+ (\ x__ y__ -> x__{_FieldDescriptorProto'label = y__})++type instance Data.ProtoLens.Field "type'" FieldDescriptorProto =+ FieldDescriptorProto'Type++instance Data.ProtoLens.HasField "type'" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'type'+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'type'" FieldDescriptorProto =+ Prelude.Maybe FieldDescriptorProto'Type++instance Data.ProtoLens.HasField "maybe'type'" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'type'+ (\ x__ y__ -> x__{_FieldDescriptorProto'type' = y__})++type instance Data.ProtoLens.Field "typeName" FieldDescriptorProto+ = Data.Text.Text++instance Data.ProtoLens.HasField "typeName" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'typeName+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'typeName" FieldDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'typeName"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'typeName+ (\ x__ y__ -> x__{_FieldDescriptorProto'typeName = y__})++type instance Data.ProtoLens.Field "extendee" FieldDescriptorProto+ = Data.Text.Text++instance Data.ProtoLens.HasField "extendee" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'extendee+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'extendee" FieldDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'extendee"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'extendee+ (\ x__ y__ -> x__{_FieldDescriptorProto'extendee = y__})++type instance+ Data.ProtoLens.Field "defaultValue" FieldDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "defaultValue"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = (Prelude..) maybe'defaultValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'defaultValue" FieldDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'defaultValue"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'defaultValue+ (\ x__ y__ -> x__{_FieldDescriptorProto'defaultValue = y__})++type instance+ Data.ProtoLens.Field "oneofIndex" FieldDescriptorProto =+ Data.Int.Int32++instance Data.ProtoLens.HasField "oneofIndex" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'oneofIndex+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'oneofIndex" FieldDescriptorProto =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'oneofIndex"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'oneofIndex+ (\ x__ y__ -> x__{_FieldDescriptorProto'oneofIndex = y__})++type instance Data.ProtoLens.Field "jsonName" FieldDescriptorProto+ = Data.Text.Text++instance Data.ProtoLens.HasField "jsonName" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'jsonName+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'jsonName" FieldDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'jsonName"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'jsonName+ (\ x__ y__ -> x__{_FieldDescriptorProto'jsonName = y__})++type instance Data.ProtoLens.Field "options" FieldDescriptorProto =+ FieldOptions++instance Data.ProtoLens.HasField "options" FieldDescriptorProto+ FieldDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" FieldDescriptorProto =+ Prelude.Maybe FieldOptions++instance Data.ProtoLens.HasField "maybe'options"+ FieldDescriptorProto FieldDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FieldDescriptorProto'options+ (\ x__ y__ -> x__{_FieldDescriptorProto'options = y__})++instance Data.Default.Class.Default FieldDescriptorProto where+ def+ = FieldDescriptorProto{_FieldDescriptorProto'name =+ Prelude.Nothing,+ _FieldDescriptorProto'number = Prelude.Nothing,+ _FieldDescriptorProto'label = Prelude.Nothing,+ _FieldDescriptorProto'type' = Prelude.Nothing,+ _FieldDescriptorProto'typeName = Prelude.Nothing,+ _FieldDescriptorProto'extendee = Prelude.Nothing,+ _FieldDescriptorProto'defaultValue = Prelude.Nothing,+ _FieldDescriptorProto'oneofIndex = Prelude.Nothing,+ _FieldDescriptorProto'jsonName = Prelude.Nothing,+ _FieldDescriptorProto'options = Prelude.Nothing}++instance Data.ProtoLens.Message FieldDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ number__field_descriptor+ = Data.ProtoLens.FieldDescriptor "number"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'number)+ label__field_descriptor+ = Data.ProtoLens.FieldDescriptor "label"+ (Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Label)+ (Data.ProtoLens.OptionalField maybe'label)+ type'__field_descriptor+ = Data.ProtoLens.FieldDescriptor "type"+ (Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Type)+ (Data.ProtoLens.OptionalField maybe'type')+ typeName__field_descriptor+ = Data.ProtoLens.FieldDescriptor "type_name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'typeName)+ extendee__field_descriptor+ = Data.ProtoLens.FieldDescriptor "extendee"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'extendee)+ defaultValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "default_value"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'defaultValue)+ oneofIndex__field_descriptor+ = Data.ProtoLens.FieldDescriptor "oneof_index"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'oneofIndex)+ jsonName__field_descriptor+ = Data.ProtoLens.FieldDescriptor "json_name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'jsonName)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 3, number__field_descriptor),+ (Data.ProtoLens.Tag 4, label__field_descriptor),+ (Data.ProtoLens.Tag 5, type'__field_descriptor),+ (Data.ProtoLens.Tag 6, typeName__field_descriptor),+ (Data.ProtoLens.Tag 2, extendee__field_descriptor),+ (Data.ProtoLens.Tag 7, defaultValue__field_descriptor),+ (Data.ProtoLens.Tag 9, oneofIndex__field_descriptor),+ (Data.ProtoLens.Tag 10, jsonName__field_descriptor),+ (Data.ProtoLens.Tag 8, options__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("number", number__field_descriptor),+ ("label", label__field_descriptor),+ ("type", type'__field_descriptor),+ ("type_name", typeName__field_descriptor),+ ("extendee", extendee__field_descriptor),+ ("default_value", defaultValue__field_descriptor),+ ("oneof_index", oneofIndex__field_descriptor),+ ("json_name", jsonName__field_descriptor),+ ("options", options__field_descriptor)])++data FieldDescriptorProto'Label = FieldDescriptorProto'LABEL_OPTIONAL+ | FieldDescriptorProto'LABEL_REQUIRED+ | FieldDescriptorProto'LABEL_REPEATED+ deriving (Prelude.Show, Prelude.Eq)++instance Data.Default.Class.Default FieldDescriptorProto'Label+ where+ def = FieldDescriptorProto'LABEL_OPTIONAL++instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Label+ where+ fieldDefault = FieldDescriptorProto'LABEL_OPTIONAL++instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Label+ where+ maybeToEnum 1 = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+ maybeToEnum 2 = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+ maybeToEnum 3 = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldDescriptorProto'LABEL_OPTIONAL = "LABEL_OPTIONAL"+ showEnum FieldDescriptorProto'LABEL_REQUIRED = "LABEL_REQUIRED"+ showEnum FieldDescriptorProto'LABEL_REPEATED = "LABEL_REPEATED"+ readEnum "LABEL_OPTIONAL"+ = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+ readEnum "LABEL_REQUIRED"+ = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+ readEnum "LABEL_REPEATED"+ = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+ readEnum _ = Prelude.Nothing++instance Prelude.Enum FieldDescriptorProto'Label where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++) "toEnum: unknown value for enum Label: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldDescriptorProto'LABEL_OPTIONAL = 1+ fromEnum FieldDescriptorProto'LABEL_REQUIRED = 2+ fromEnum FieldDescriptorProto'LABEL_REPEATED = 3+ succ FieldDescriptorProto'LABEL_REPEATED+ = Prelude.error+ "Ident \"FieldDescriptorProto'Label\".Ident \"succ\": bad argument Ident \"FieldDescriptorProto'LABEL_REPEATED\". This value would be out of bounds."+ succ FieldDescriptorProto'LABEL_OPTIONAL+ = FieldDescriptorProto'LABEL_REQUIRED+ succ FieldDescriptorProto'LABEL_REQUIRED+ = FieldDescriptorProto'LABEL_REPEATED+ pred FieldDescriptorProto'LABEL_OPTIONAL+ = Prelude.error+ "Ident \"FieldDescriptorProto'Label\".Ident \"pred\": bad argument Ident \"FieldDescriptorProto'LABEL_OPTIONAL\". This value would be out of bounds."+ pred FieldDescriptorProto'LABEL_REQUIRED+ = FieldDescriptorProto'LABEL_OPTIONAL+ pred FieldDescriptorProto'LABEL_REPEATED+ = FieldDescriptorProto'LABEL_REQUIRED+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo++instance Prelude.Bounded FieldDescriptorProto'Label where+ minBound = FieldDescriptorProto'LABEL_OPTIONAL+ maxBound = FieldDescriptorProto'LABEL_REPEATED++data FieldDescriptorProto'Type = FieldDescriptorProto'TYPE_DOUBLE+ | FieldDescriptorProto'TYPE_FLOAT+ | FieldDescriptorProto'TYPE_INT64+ | FieldDescriptorProto'TYPE_UINT64+ | FieldDescriptorProto'TYPE_INT32+ | FieldDescriptorProto'TYPE_FIXED64+ | FieldDescriptorProto'TYPE_FIXED32+ | FieldDescriptorProto'TYPE_BOOL+ | FieldDescriptorProto'TYPE_STRING+ | FieldDescriptorProto'TYPE_GROUP+ | FieldDescriptorProto'TYPE_MESSAGE+ | FieldDescriptorProto'TYPE_BYTES+ | FieldDescriptorProto'TYPE_UINT32+ | FieldDescriptorProto'TYPE_ENUM+ | FieldDescriptorProto'TYPE_SFIXED32+ | FieldDescriptorProto'TYPE_SFIXED64+ | FieldDescriptorProto'TYPE_SINT32+ | FieldDescriptorProto'TYPE_SINT64+ deriving (Prelude.Show, Prelude.Eq)++instance Data.Default.Class.Default FieldDescriptorProto'Type where+ def = FieldDescriptorProto'TYPE_DOUBLE++instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Type+ where+ fieldDefault = FieldDescriptorProto'TYPE_DOUBLE++instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Type where+ maybeToEnum 1 = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+ maybeToEnum 2 = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+ maybeToEnum 3 = Prelude.Just FieldDescriptorProto'TYPE_INT64+ maybeToEnum 4 = Prelude.Just FieldDescriptorProto'TYPE_UINT64+ maybeToEnum 5 = Prelude.Just FieldDescriptorProto'TYPE_INT32+ maybeToEnum 6 = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+ maybeToEnum 7 = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+ maybeToEnum 8 = Prelude.Just FieldDescriptorProto'TYPE_BOOL+ maybeToEnum 9 = Prelude.Just FieldDescriptorProto'TYPE_STRING+ maybeToEnum 10 = Prelude.Just FieldDescriptorProto'TYPE_GROUP+ maybeToEnum 11 = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+ maybeToEnum 12 = Prelude.Just FieldDescriptorProto'TYPE_BYTES+ maybeToEnum 13 = Prelude.Just FieldDescriptorProto'TYPE_UINT32+ maybeToEnum 14 = Prelude.Just FieldDescriptorProto'TYPE_ENUM+ maybeToEnum 15 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+ maybeToEnum 16 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+ maybeToEnum 17 = Prelude.Just FieldDescriptorProto'TYPE_SINT32+ maybeToEnum 18 = Prelude.Just FieldDescriptorProto'TYPE_SINT64+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldDescriptorProto'TYPE_DOUBLE = "TYPE_DOUBLE"+ showEnum FieldDescriptorProto'TYPE_FLOAT = "TYPE_FLOAT"+ showEnum FieldDescriptorProto'TYPE_INT64 = "TYPE_INT64"+ showEnum FieldDescriptorProto'TYPE_UINT64 = "TYPE_UINT64"+ showEnum FieldDescriptorProto'TYPE_INT32 = "TYPE_INT32"+ showEnum FieldDescriptorProto'TYPE_FIXED64 = "TYPE_FIXED64"+ showEnum FieldDescriptorProto'TYPE_FIXED32 = "TYPE_FIXED32"+ showEnum FieldDescriptorProto'TYPE_BOOL = "TYPE_BOOL"+ showEnum FieldDescriptorProto'TYPE_STRING = "TYPE_STRING"+ showEnum FieldDescriptorProto'TYPE_GROUP = "TYPE_GROUP"+ showEnum FieldDescriptorProto'TYPE_MESSAGE = "TYPE_MESSAGE"+ showEnum FieldDescriptorProto'TYPE_BYTES = "TYPE_BYTES"+ showEnum FieldDescriptorProto'TYPE_UINT32 = "TYPE_UINT32"+ showEnum FieldDescriptorProto'TYPE_ENUM = "TYPE_ENUM"+ showEnum FieldDescriptorProto'TYPE_SFIXED32 = "TYPE_SFIXED32"+ showEnum FieldDescriptorProto'TYPE_SFIXED64 = "TYPE_SFIXED64"+ showEnum FieldDescriptorProto'TYPE_SINT32 = "TYPE_SINT32"+ showEnum FieldDescriptorProto'TYPE_SINT64 = "TYPE_SINT64"+ readEnum "TYPE_DOUBLE"+ = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+ readEnum "TYPE_FLOAT"+ = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+ readEnum "TYPE_INT64"+ = Prelude.Just FieldDescriptorProto'TYPE_INT64+ readEnum "TYPE_UINT64"+ = Prelude.Just FieldDescriptorProto'TYPE_UINT64+ readEnum "TYPE_INT32"+ = Prelude.Just FieldDescriptorProto'TYPE_INT32+ readEnum "TYPE_FIXED64"+ = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+ readEnum "TYPE_FIXED32"+ = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+ readEnum "TYPE_BOOL" = Prelude.Just FieldDescriptorProto'TYPE_BOOL+ readEnum "TYPE_STRING"+ = Prelude.Just FieldDescriptorProto'TYPE_STRING+ readEnum "TYPE_GROUP"+ = Prelude.Just FieldDescriptorProto'TYPE_GROUP+ readEnum "TYPE_MESSAGE"+ = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+ readEnum "TYPE_BYTES"+ = Prelude.Just FieldDescriptorProto'TYPE_BYTES+ readEnum "TYPE_UINT32"+ = Prelude.Just FieldDescriptorProto'TYPE_UINT32+ readEnum "TYPE_ENUM" = Prelude.Just FieldDescriptorProto'TYPE_ENUM+ readEnum "TYPE_SFIXED32"+ = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+ readEnum "TYPE_SFIXED64"+ = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+ readEnum "TYPE_SINT32"+ = Prelude.Just FieldDescriptorProto'TYPE_SINT32+ readEnum "TYPE_SINT64"+ = Prelude.Just FieldDescriptorProto'TYPE_SINT64+ readEnum _ = Prelude.Nothing++instance Prelude.Enum FieldDescriptorProto'Type where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++) "toEnum: unknown value for enum Type: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldDescriptorProto'TYPE_DOUBLE = 1+ fromEnum FieldDescriptorProto'TYPE_FLOAT = 2+ fromEnum FieldDescriptorProto'TYPE_INT64 = 3+ fromEnum FieldDescriptorProto'TYPE_UINT64 = 4+ fromEnum FieldDescriptorProto'TYPE_INT32 = 5+ fromEnum FieldDescriptorProto'TYPE_FIXED64 = 6+ fromEnum FieldDescriptorProto'TYPE_FIXED32 = 7+ fromEnum FieldDescriptorProto'TYPE_BOOL = 8+ fromEnum FieldDescriptorProto'TYPE_STRING = 9+ fromEnum FieldDescriptorProto'TYPE_GROUP = 10+ fromEnum FieldDescriptorProto'TYPE_MESSAGE = 11+ fromEnum FieldDescriptorProto'TYPE_BYTES = 12+ fromEnum FieldDescriptorProto'TYPE_UINT32 = 13+ fromEnum FieldDescriptorProto'TYPE_ENUM = 14+ fromEnum FieldDescriptorProto'TYPE_SFIXED32 = 15+ fromEnum FieldDescriptorProto'TYPE_SFIXED64 = 16+ fromEnum FieldDescriptorProto'TYPE_SINT32 = 17+ fromEnum FieldDescriptorProto'TYPE_SINT64 = 18+ succ FieldDescriptorProto'TYPE_SINT64+ = Prelude.error+ "Ident \"FieldDescriptorProto'Type\".Ident \"succ\": bad argument Ident \"FieldDescriptorProto'TYPE_SINT64\". This value would be out of bounds."+ succ FieldDescriptorProto'TYPE_DOUBLE+ = FieldDescriptorProto'TYPE_FLOAT+ succ FieldDescriptorProto'TYPE_FLOAT+ = FieldDescriptorProto'TYPE_INT64+ succ FieldDescriptorProto'TYPE_INT64+ = FieldDescriptorProto'TYPE_UINT64+ succ FieldDescriptorProto'TYPE_UINT64+ = FieldDescriptorProto'TYPE_INT32+ succ FieldDescriptorProto'TYPE_INT32+ = FieldDescriptorProto'TYPE_FIXED64+ succ FieldDescriptorProto'TYPE_FIXED64+ = FieldDescriptorProto'TYPE_FIXED32+ succ FieldDescriptorProto'TYPE_FIXED32+ = FieldDescriptorProto'TYPE_BOOL+ succ FieldDescriptorProto'TYPE_BOOL+ = FieldDescriptorProto'TYPE_STRING+ succ FieldDescriptorProto'TYPE_STRING+ = FieldDescriptorProto'TYPE_GROUP+ succ FieldDescriptorProto'TYPE_GROUP+ = FieldDescriptorProto'TYPE_MESSAGE+ succ FieldDescriptorProto'TYPE_MESSAGE+ = FieldDescriptorProto'TYPE_BYTES+ succ FieldDescriptorProto'TYPE_BYTES+ = FieldDescriptorProto'TYPE_UINT32+ succ FieldDescriptorProto'TYPE_UINT32+ = FieldDescriptorProto'TYPE_ENUM+ succ FieldDescriptorProto'TYPE_ENUM+ = FieldDescriptorProto'TYPE_SFIXED32+ succ FieldDescriptorProto'TYPE_SFIXED32+ = FieldDescriptorProto'TYPE_SFIXED64+ succ FieldDescriptorProto'TYPE_SFIXED64+ = FieldDescriptorProto'TYPE_SINT32+ succ FieldDescriptorProto'TYPE_SINT32+ = FieldDescriptorProto'TYPE_SINT64+ pred FieldDescriptorProto'TYPE_DOUBLE+ = Prelude.error+ "Ident \"FieldDescriptorProto'Type\".Ident \"pred\": bad argument Ident \"FieldDescriptorProto'TYPE_DOUBLE\". This value would be out of bounds."+ pred FieldDescriptorProto'TYPE_FLOAT+ = FieldDescriptorProto'TYPE_DOUBLE+ pred FieldDescriptorProto'TYPE_INT64+ = FieldDescriptorProto'TYPE_FLOAT+ pred FieldDescriptorProto'TYPE_UINT64+ = FieldDescriptorProto'TYPE_INT64+ pred FieldDescriptorProto'TYPE_INT32+ = FieldDescriptorProto'TYPE_UINT64+ pred FieldDescriptorProto'TYPE_FIXED64+ = FieldDescriptorProto'TYPE_INT32+ pred FieldDescriptorProto'TYPE_FIXED32+ = FieldDescriptorProto'TYPE_FIXED64+ pred FieldDescriptorProto'TYPE_BOOL+ = FieldDescriptorProto'TYPE_FIXED32+ pred FieldDescriptorProto'TYPE_STRING+ = FieldDescriptorProto'TYPE_BOOL+ pred FieldDescriptorProto'TYPE_GROUP+ = FieldDescriptorProto'TYPE_STRING+ pred FieldDescriptorProto'TYPE_MESSAGE+ = FieldDescriptorProto'TYPE_GROUP+ pred FieldDescriptorProto'TYPE_BYTES+ = FieldDescriptorProto'TYPE_MESSAGE+ pred FieldDescriptorProto'TYPE_UINT32+ = FieldDescriptorProto'TYPE_BYTES+ pred FieldDescriptorProto'TYPE_ENUM+ = FieldDescriptorProto'TYPE_UINT32+ pred FieldDescriptorProto'TYPE_SFIXED32+ = FieldDescriptorProto'TYPE_ENUM+ pred FieldDescriptorProto'TYPE_SFIXED64+ = FieldDescriptorProto'TYPE_SFIXED32+ pred FieldDescriptorProto'TYPE_SINT32+ = FieldDescriptorProto'TYPE_SFIXED64+ pred FieldDescriptorProto'TYPE_SINT64+ = FieldDescriptorProto'TYPE_SINT32+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo++instance Prelude.Bounded FieldDescriptorProto'Type where+ minBound = FieldDescriptorProto'TYPE_DOUBLE+ maxBound = FieldDescriptorProto'TYPE_SINT64++data FieldOptions = FieldOptions{_FieldOptions'ctype ::+ Prelude.Maybe FieldOptions'CType,+ _FieldOptions'packed :: Prelude.Maybe Prelude.Bool,+ _FieldOptions'jstype :: Prelude.Maybe FieldOptions'JSType,+ _FieldOptions'lazy :: Prelude.Maybe Prelude.Bool,+ _FieldOptions'deprecated :: Prelude.Maybe Prelude.Bool,+ _FieldOptions'weak :: Prelude.Maybe Prelude.Bool,+ _FieldOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "ctype" FieldOptions =+ FieldOptions'CType++instance Data.ProtoLens.HasField "ctype" FieldOptions FieldOptions+ where+ field _+ = (Prelude..) maybe'ctype+ (Data.ProtoLens.maybeLens FieldOptions'STRING)++type instance Data.ProtoLens.Field "maybe'ctype" FieldOptions =+ Prelude.Maybe FieldOptions'CType++instance Data.ProtoLens.HasField "maybe'ctype" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'ctype+ (\ x__ y__ -> x__{_FieldOptions'ctype = y__})++type instance Data.ProtoLens.Field "packed" FieldOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "packed" FieldOptions FieldOptions+ where+ field _+ = (Prelude..) maybe'packed+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'packed" FieldOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'packed" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'packed+ (\ x__ y__ -> x__{_FieldOptions'packed = y__})++type instance Data.ProtoLens.Field "jstype" FieldOptions =+ FieldOptions'JSType++instance Data.ProtoLens.HasField "jstype" FieldOptions FieldOptions+ where+ field _+ = (Prelude..) maybe'jstype+ (Data.ProtoLens.maybeLens FieldOptions'JS_NORMAL)++type instance Data.ProtoLens.Field "maybe'jstype" FieldOptions =+ Prelude.Maybe FieldOptions'JSType++instance Data.ProtoLens.HasField "maybe'jstype" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'jstype+ (\ x__ y__ -> x__{_FieldOptions'jstype = y__})++type instance Data.ProtoLens.Field "lazy" FieldOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "lazy" FieldOptions FieldOptions+ where+ field _+ = (Prelude..) maybe'lazy (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'lazy" FieldOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'lazy" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'lazy+ (\ x__ y__ -> x__{_FieldOptions'lazy = y__})++type instance Data.ProtoLens.Field "deprecated" FieldOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" FieldOptions+ FieldOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'deprecated" FieldOptions+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'deprecated+ (\ x__ y__ -> x__{_FieldOptions'deprecated = y__})++type instance Data.ProtoLens.Field "weak" FieldOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "weak" FieldOptions FieldOptions+ where+ field _+ = (Prelude..) maybe'weak (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'weak" FieldOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'weak" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'weak+ (\ x__ y__ -> x__{_FieldOptions'weak = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" FieldOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption" FieldOptions+ FieldOptions where+ field _+ = Lens.Family2.Unchecked.lens _FieldOptions'uninterpretedOption+ (\ x__ y__ -> x__{_FieldOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default FieldOptions where+ def+ = FieldOptions{_FieldOptions'ctype = Prelude.Nothing,+ _FieldOptions'packed = Prelude.Nothing,+ _FieldOptions'jstype = Prelude.Nothing,+ _FieldOptions'lazy = Prelude.Nothing,+ _FieldOptions'deprecated = Prelude.Nothing,+ _FieldOptions'weak = Prelude.Nothing,+ _FieldOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message FieldOptions where+ descriptor+ = let ctype__field_descriptor+ = Data.ProtoLens.FieldDescriptor "ctype"+ (Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions'CType)+ (Data.ProtoLens.OptionalField maybe'ctype)+ packed__field_descriptor+ = Data.ProtoLens.FieldDescriptor "packed"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'packed)+ jstype__field_descriptor+ = Data.ProtoLens.FieldDescriptor "jstype"+ (Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions'JSType)+ (Data.ProtoLens.OptionalField maybe'jstype)+ lazy__field_descriptor+ = Data.ProtoLens.FieldDescriptor "lazy"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'lazy)+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ weak__field_descriptor+ = Data.ProtoLens.FieldDescriptor "weak"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'weak)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, ctype__field_descriptor),+ (Data.ProtoLens.Tag 2, packed__field_descriptor),+ (Data.ProtoLens.Tag 6, jstype__field_descriptor),+ (Data.ProtoLens.Tag 5, lazy__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 10, weak__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("ctype", ctype__field_descriptor),+ ("packed", packed__field_descriptor),+ ("jstype", jstype__field_descriptor),+ ("lazy", lazy__field_descriptor),+ ("deprecated", deprecated__field_descriptor),+ ("weak", weak__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data FieldOptions'CType = FieldOptions'STRING+ | FieldOptions'CORD+ | FieldOptions'STRING_PIECE+ deriving (Prelude.Show, Prelude.Eq)++instance Data.Default.Class.Default FieldOptions'CType where+ def = FieldOptions'STRING++instance Data.ProtoLens.FieldDefault FieldOptions'CType where+ fieldDefault = FieldOptions'STRING++instance Data.ProtoLens.MessageEnum FieldOptions'CType where+ maybeToEnum 0 = Prelude.Just FieldOptions'STRING+ maybeToEnum 1 = Prelude.Just FieldOptions'CORD+ maybeToEnum 2 = Prelude.Just FieldOptions'STRING_PIECE+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldOptions'STRING = "STRING"+ showEnum FieldOptions'CORD = "CORD"+ showEnum FieldOptions'STRING_PIECE = "STRING_PIECE"+ readEnum "STRING" = Prelude.Just FieldOptions'STRING+ readEnum "CORD" = Prelude.Just FieldOptions'CORD+ readEnum "STRING_PIECE" = Prelude.Just FieldOptions'STRING_PIECE+ readEnum _ = Prelude.Nothing++instance Prelude.Enum FieldOptions'CType where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++) "toEnum: unknown value for enum CType: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldOptions'STRING = 0+ fromEnum FieldOptions'CORD = 1+ fromEnum FieldOptions'STRING_PIECE = 2+ succ FieldOptions'STRING_PIECE+ = Prelude.error+ "Ident \"FieldOptions'CType\".Ident \"succ\": bad argument Ident \"FieldOptions'STRING_PIECE\". This value would be out of bounds."+ succ FieldOptions'STRING = FieldOptions'CORD+ succ FieldOptions'CORD = FieldOptions'STRING_PIECE+ pred FieldOptions'STRING+ = Prelude.error+ "Ident \"FieldOptions'CType\".Ident \"pred\": bad argument Ident \"FieldOptions'STRING\". This value would be out of bounds."+ pred FieldOptions'CORD = FieldOptions'STRING+ pred FieldOptions'STRING_PIECE = FieldOptions'CORD+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo++instance Prelude.Bounded FieldOptions'CType where+ minBound = FieldOptions'STRING+ maxBound = FieldOptions'STRING_PIECE++data FieldOptions'JSType = FieldOptions'JS_NORMAL+ | FieldOptions'JS_STRING+ | FieldOptions'JS_NUMBER+ deriving (Prelude.Show, Prelude.Eq)++instance Data.Default.Class.Default FieldOptions'JSType where+ def = FieldOptions'JS_NORMAL++instance Data.ProtoLens.FieldDefault FieldOptions'JSType where+ fieldDefault = FieldOptions'JS_NORMAL++instance Data.ProtoLens.MessageEnum FieldOptions'JSType where+ maybeToEnum 0 = Prelude.Just FieldOptions'JS_NORMAL+ maybeToEnum 1 = Prelude.Just FieldOptions'JS_STRING+ maybeToEnum 2 = Prelude.Just FieldOptions'JS_NUMBER+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldOptions'JS_NORMAL = "JS_NORMAL"+ showEnum FieldOptions'JS_STRING = "JS_STRING"+ showEnum FieldOptions'JS_NUMBER = "JS_NUMBER"+ readEnum "JS_NORMAL" = Prelude.Just FieldOptions'JS_NORMAL+ readEnum "JS_STRING" = Prelude.Just FieldOptions'JS_STRING+ readEnum "JS_NUMBER" = Prelude.Just FieldOptions'JS_NUMBER+ readEnum _ = Prelude.Nothing++instance Prelude.Enum FieldOptions'JSType where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++) "toEnum: unknown value for enum JSType: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldOptions'JS_NORMAL = 0+ fromEnum FieldOptions'JS_STRING = 1+ fromEnum FieldOptions'JS_NUMBER = 2+ succ FieldOptions'JS_NUMBER+ = Prelude.error+ "Ident \"FieldOptions'JSType\".Ident \"succ\": bad argument Ident \"FieldOptions'JS_NUMBER\". This value would be out of bounds."+ succ FieldOptions'JS_NORMAL = FieldOptions'JS_STRING+ succ FieldOptions'JS_STRING = FieldOptions'JS_NUMBER+ pred FieldOptions'JS_NORMAL+ = Prelude.error+ "Ident \"FieldOptions'JSType\".Ident \"pred\": bad argument Ident \"FieldOptions'JS_NORMAL\". This value would be out of bounds."+ pred FieldOptions'JS_STRING = FieldOptions'JS_NORMAL+ pred FieldOptions'JS_NUMBER = FieldOptions'JS_STRING+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo++instance Prelude.Bounded FieldOptions'JSType where+ minBound = FieldOptions'JS_NORMAL+ maxBound = FieldOptions'JS_NUMBER++data FileDescriptorProto = FileDescriptorProto{_FileDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _FileDescriptorProto'package ::+ Prelude.Maybe Data.Text.Text,+ _FileDescriptorProto'dependency :: [Data.Text.Text],+ _FileDescriptorProto'publicDependency ::+ [Data.Int.Int32],+ _FileDescriptorProto'weakDependency ::+ [Data.Int.Int32],+ _FileDescriptorProto'messageType ::+ [DescriptorProto],+ _FileDescriptorProto'enumType ::+ [EnumDescriptorProto],+ _FileDescriptorProto'service ::+ [ServiceDescriptorProto],+ _FileDescriptorProto'extension ::+ [FieldDescriptorProto],+ _FileDescriptorProto'options ::+ Prelude.Maybe FileOptions,+ _FileDescriptorProto'sourceCodeInfo ::+ Prelude.Maybe SourceCodeInfo,+ _FileDescriptorProto'syntax ::+ Prelude.Maybe Data.Text.Text}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" FileDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" FileDescriptorProto+ FileDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'name" FileDescriptorProto+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'name+ (\ x__ y__ -> x__{_FileDescriptorProto'name = y__})++type instance Data.ProtoLens.Field "package" FileDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "package" FileDescriptorProto+ FileDescriptorProto where+ field _+ = (Prelude..) maybe'package+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'package" FileDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'package"+ FileDescriptorProto FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'package+ (\ x__ y__ -> x__{_FileDescriptorProto'package = y__})++type instance Data.ProtoLens.Field "dependency" FileDescriptorProto+ = [Data.Text.Text]++instance Data.ProtoLens.HasField "dependency" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'dependency+ (\ x__ y__ -> x__{_FileDescriptorProto'dependency = y__})++type instance+ Data.ProtoLens.Field "publicDependency" FileDescriptorProto =+ [Data.Int.Int32]++instance Data.ProtoLens.HasField "publicDependency"+ FileDescriptorProto FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'publicDependency+ (\ x__ y__ -> x__{_FileDescriptorProto'publicDependency = y__})++type instance+ Data.ProtoLens.Field "weakDependency" FileDescriptorProto =+ [Data.Int.Int32]++instance Data.ProtoLens.HasField "weakDependency"+ FileDescriptorProto FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'weakDependency+ (\ x__ y__ -> x__{_FileDescriptorProto'weakDependency = y__})++type instance+ Data.ProtoLens.Field "messageType" FileDescriptorProto =+ [DescriptorProto]++instance Data.ProtoLens.HasField "messageType" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'messageType+ (\ x__ y__ -> x__{_FileDescriptorProto'messageType = y__})++type instance Data.ProtoLens.Field "enumType" FileDescriptorProto =+ [EnumDescriptorProto]++instance Data.ProtoLens.HasField "enumType" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'enumType+ (\ x__ y__ -> x__{_FileDescriptorProto'enumType = y__})++type instance Data.ProtoLens.Field "service" FileDescriptorProto =+ [ServiceDescriptorProto]++instance Data.ProtoLens.HasField "service" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'service+ (\ x__ y__ -> x__{_FileDescriptorProto'service = y__})++type instance Data.ProtoLens.Field "extension" FileDescriptorProto+ = [FieldDescriptorProto]++instance Data.ProtoLens.HasField "extension" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'extension+ (\ x__ y__ -> x__{_FileDescriptorProto'extension = y__})++type instance Data.ProtoLens.Field "options" FileDescriptorProto =+ FileOptions++instance Data.ProtoLens.HasField "options" FileDescriptorProto+ FileDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" FileDescriptorProto =+ Prelude.Maybe FileOptions++instance Data.ProtoLens.HasField "maybe'options"+ FileDescriptorProto FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'options+ (\ x__ y__ -> x__{_FileDescriptorProto'options = y__})++type instance+ Data.ProtoLens.Field "sourceCodeInfo" FileDescriptorProto =+ SourceCodeInfo++instance Data.ProtoLens.HasField "sourceCodeInfo"+ FileDescriptorProto FileDescriptorProto where+ field _+ = (Prelude..) maybe'sourceCodeInfo+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'sourceCodeInfo" FileDescriptorProto =+ Prelude.Maybe SourceCodeInfo++instance Data.ProtoLens.HasField "maybe'sourceCodeInfo"+ FileDescriptorProto FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'sourceCodeInfo+ (\ x__ y__ -> x__{_FileDescriptorProto'sourceCodeInfo = y__})++type instance Data.ProtoLens.Field "syntax" FileDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "syntax" FileDescriptorProto+ FileDescriptorProto where+ field _+ = (Prelude..) maybe'syntax+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'syntax" FileDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'syntax" FileDescriptorProto+ FileDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorProto'syntax+ (\ x__ y__ -> x__{_FileDescriptorProto'syntax = y__})++instance Data.Default.Class.Default FileDescriptorProto where+ def+ = FileDescriptorProto{_FileDescriptorProto'name = Prelude.Nothing,+ _FileDescriptorProto'package = Prelude.Nothing,+ _FileDescriptorProto'dependency = [],+ _FileDescriptorProto'publicDependency = [],+ _FileDescriptorProto'weakDependency = [],+ _FileDescriptorProto'messageType = [],+ _FileDescriptorProto'enumType = [],+ _FileDescriptorProto'service = [],+ _FileDescriptorProto'extension = [],+ _FileDescriptorProto'options = Prelude.Nothing,+ _FileDescriptorProto'sourceCodeInfo = Prelude.Nothing,+ _FileDescriptorProto'syntax = Prelude.Nothing}++instance Data.ProtoLens.Message FileDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ package__field_descriptor+ = Data.ProtoLens.FieldDescriptor "package"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'package)+ dependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor "dependency"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked dependency)+ publicDependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor "public_dependency"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ publicDependency)+ weakDependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor "weak_dependency"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ weakDependency)+ messageType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "message_type"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked messageType)+ enumType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "enum_type"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked enumType)+ service__field_descriptor+ = Data.ProtoLens.FieldDescriptor "service"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor ServiceDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked service)+ extension__field_descriptor+ = Data.ProtoLens.FieldDescriptor "extension"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked extension)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FileOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ sourceCodeInfo__field_descriptor+ = Data.ProtoLens.FieldDescriptor "source_code_info"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo)+ (Data.ProtoLens.OptionalField maybe'sourceCodeInfo)+ syntax__field_descriptor+ = Data.ProtoLens.FieldDescriptor "syntax"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'syntax)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, package__field_descriptor),+ (Data.ProtoLens.Tag 3, dependency__field_descriptor),+ (Data.ProtoLens.Tag 10, publicDependency__field_descriptor),+ (Data.ProtoLens.Tag 11, weakDependency__field_descriptor),+ (Data.ProtoLens.Tag 4, messageType__field_descriptor),+ (Data.ProtoLens.Tag 5, enumType__field_descriptor),+ (Data.ProtoLens.Tag 6, service__field_descriptor),+ (Data.ProtoLens.Tag 7, extension__field_descriptor),+ (Data.ProtoLens.Tag 8, options__field_descriptor),+ (Data.ProtoLens.Tag 9, sourceCodeInfo__field_descriptor),+ (Data.ProtoLens.Tag 12, syntax__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("package", package__field_descriptor),+ ("dependency", dependency__field_descriptor),+ ("public_dependency", publicDependency__field_descriptor),+ ("weak_dependency", weakDependency__field_descriptor),+ ("message_type", messageType__field_descriptor),+ ("enum_type", enumType__field_descriptor),+ ("service", service__field_descriptor),+ ("extension", extension__field_descriptor),+ ("options", options__field_descriptor),+ ("source_code_info", sourceCodeInfo__field_descriptor),+ ("syntax", syntax__field_descriptor)])++data FileDescriptorSet = FileDescriptorSet{_FileDescriptorSet'file+ :: [FileDescriptorProto]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "file" FileDescriptorSet =+ [FileDescriptorProto]++instance Data.ProtoLens.HasField "file" FileDescriptorSet+ FileDescriptorSet where+ field _+ = Lens.Family2.Unchecked.lens _FileDescriptorSet'file+ (\ x__ y__ -> x__{_FileDescriptorSet'file = y__})++instance Data.Default.Class.Default FileDescriptorSet where+ def = FileDescriptorSet{_FileDescriptorSet'file = []}++instance Data.ProtoLens.Message FileDescriptorSet where+ descriptor+ = let file__field_descriptor+ = Data.ProtoLens.FieldDescriptor "file"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor FileDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked file)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, file__field_descriptor)])+ (Data.Map.fromList [("file", file__field_descriptor)])++data FileOptions = FileOptions{_FileOptions'javaPackage ::+ Prelude.Maybe Data.Text.Text,+ _FileOptions'javaOuterClassname :: Prelude.Maybe Data.Text.Text,+ _FileOptions'javaMultipleFiles :: Prelude.Maybe Prelude.Bool,+ _FileOptions'javaGenerateEqualsAndHash ::+ Prelude.Maybe Prelude.Bool,+ _FileOptions'javaStringCheckUtf8 :: Prelude.Maybe Prelude.Bool,+ _FileOptions'optimizeFor :: Prelude.Maybe FileOptions'OptimizeMode,+ _FileOptions'goPackage :: Prelude.Maybe Data.Text.Text,+ _FileOptions'ccGenericServices :: Prelude.Maybe Prelude.Bool,+ _FileOptions'javaGenericServices :: Prelude.Maybe Prelude.Bool,+ _FileOptions'pyGenericServices :: Prelude.Maybe Prelude.Bool,+ _FileOptions'deprecated :: Prelude.Maybe Prelude.Bool,+ _FileOptions'ccEnableArenas :: Prelude.Maybe Prelude.Bool,+ _FileOptions'objcClassPrefix :: Prelude.Maybe Data.Text.Text,+ _FileOptions'csharpNamespace :: Prelude.Maybe Data.Text.Text,+ _FileOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "javaPackage" FileOptions =+ Data.Text.Text++instance Data.ProtoLens.HasField "javaPackage" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'javaPackage+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'javaPackage" FileOptions+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'javaPackage" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'javaPackage+ (\ x__ y__ -> x__{_FileOptions'javaPackage = y__})++type instance Data.ProtoLens.Field "javaOuterClassname" FileOptions+ = Data.Text.Text++instance Data.ProtoLens.HasField "javaOuterClassname" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'javaOuterClassname+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'javaOuterClassname" FileOptions =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'javaOuterClassname"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'javaOuterClassname+ (\ x__ y__ -> x__{_FileOptions'javaOuterClassname = y__})++type instance Data.ProtoLens.Field "javaMultipleFiles" FileOptions+ = Prelude.Bool++instance Data.ProtoLens.HasField "javaMultipleFiles" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'javaMultipleFiles+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'javaMultipleFiles" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'javaMultipleFiles"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'javaMultipleFiles+ (\ x__ y__ -> x__{_FileOptions'javaMultipleFiles = y__})++type instance+ Data.ProtoLens.Field "javaGenerateEqualsAndHash" FileOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "javaGenerateEqualsAndHash"+ FileOptions FileOptions where+ field _+ = (Prelude..) maybe'javaGenerateEqualsAndHash+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'javaGenerateEqualsAndHash" FileOptions+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'javaGenerateEqualsAndHash"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens+ _FileOptions'javaGenerateEqualsAndHash+ (\ x__ y__ -> x__{_FileOptions'javaGenerateEqualsAndHash = y__})++type instance+ Data.ProtoLens.Field "javaStringCheckUtf8" FileOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "javaStringCheckUtf8" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'javaStringCheckUtf8+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'javaStringCheckUtf8" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'javaStringCheckUtf8"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'javaStringCheckUtf8+ (\ x__ y__ -> x__{_FileOptions'javaStringCheckUtf8 = y__})++type instance Data.ProtoLens.Field "optimizeFor" FileOptions =+ FileOptions'OptimizeMode++instance Data.ProtoLens.HasField "optimizeFor" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'optimizeFor+ (Data.ProtoLens.maybeLens FileOptions'SPEED)++type instance Data.ProtoLens.Field "maybe'optimizeFor" FileOptions+ = Prelude.Maybe FileOptions'OptimizeMode++instance Data.ProtoLens.HasField "maybe'optimizeFor" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'optimizeFor+ (\ x__ y__ -> x__{_FileOptions'optimizeFor = y__})++type instance Data.ProtoLens.Field "goPackage" FileOptions =+ Data.Text.Text++instance Data.ProtoLens.HasField "goPackage" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'goPackage+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'goPackage" FileOptions =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'goPackage" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'goPackage+ (\ x__ y__ -> x__{_FileOptions'goPackage = y__})++type instance Data.ProtoLens.Field "ccGenericServices" FileOptions+ = Prelude.Bool++instance Data.ProtoLens.HasField "ccGenericServices" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'ccGenericServices+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'ccGenericServices" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'ccGenericServices"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'ccGenericServices+ (\ x__ y__ -> x__{_FileOptions'ccGenericServices = y__})++type instance+ Data.ProtoLens.Field "javaGenericServices" FileOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "javaGenericServices" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'javaGenericServices+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'javaGenericServices" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'javaGenericServices"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'javaGenericServices+ (\ x__ y__ -> x__{_FileOptions'javaGenericServices = y__})++type instance Data.ProtoLens.Field "pyGenericServices" FileOptions+ = Prelude.Bool++instance Data.ProtoLens.HasField "pyGenericServices" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'pyGenericServices+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'pyGenericServices" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'pyGenericServices"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'pyGenericServices+ (\ x__ y__ -> x__{_FileOptions'pyGenericServices = y__})++type instance Data.ProtoLens.Field "deprecated" FileOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'deprecated" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'deprecated+ (\ x__ y__ -> x__{_FileOptions'deprecated = y__})++type instance Data.ProtoLens.Field "ccEnableArenas" FileOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "ccEnableArenas" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'ccEnableArenas+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'ccEnableArenas" FileOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'ccEnableArenas" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'ccEnableArenas+ (\ x__ y__ -> x__{_FileOptions'ccEnableArenas = y__})++type instance Data.ProtoLens.Field "objcClassPrefix" FileOptions =+ Data.Text.Text++instance Data.ProtoLens.HasField "objcClassPrefix" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'objcClassPrefix+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'objcClassPrefix" FileOptions =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'objcClassPrefix"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'objcClassPrefix+ (\ x__ y__ -> x__{_FileOptions'objcClassPrefix = y__})++type instance Data.ProtoLens.Field "csharpNamespace" FileOptions =+ Data.Text.Text++instance Data.ProtoLens.HasField "csharpNamespace" FileOptions+ FileOptions where+ field _+ = (Prelude..) maybe'csharpNamespace+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'csharpNamespace" FileOptions =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'csharpNamespace"+ FileOptions FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'csharpNamespace+ (\ x__ y__ -> x__{_FileOptions'csharpNamespace = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" FileOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption" FileOptions+ FileOptions where+ field _+ = Lens.Family2.Unchecked.lens _FileOptions'uninterpretedOption+ (\ x__ y__ -> x__{_FileOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default FileOptions where+ def+ = FileOptions{_FileOptions'javaPackage = Prelude.Nothing,+ _FileOptions'javaOuterClassname = Prelude.Nothing,+ _FileOptions'javaMultipleFiles = Prelude.Nothing,+ _FileOptions'javaGenerateEqualsAndHash = Prelude.Nothing,+ _FileOptions'javaStringCheckUtf8 = Prelude.Nothing,+ _FileOptions'optimizeFor = Prelude.Nothing,+ _FileOptions'goPackage = Prelude.Nothing,+ _FileOptions'ccGenericServices = Prelude.Nothing,+ _FileOptions'javaGenericServices = Prelude.Nothing,+ _FileOptions'pyGenericServices = Prelude.Nothing,+ _FileOptions'deprecated = Prelude.Nothing,+ _FileOptions'ccEnableArenas = Prelude.Nothing,+ _FileOptions'objcClassPrefix = Prelude.Nothing,+ _FileOptions'csharpNamespace = Prelude.Nothing,+ _FileOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message FileOptions where+ descriptor+ = let javaPackage__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_package"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'javaPackage)+ javaOuterClassname__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_outer_classname"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'javaOuterClassname)+ javaMultipleFiles__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_multiple_files"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'javaMultipleFiles)+ javaGenerateEqualsAndHash__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_generate_equals_and_hash"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'javaGenerateEqualsAndHash)+ javaStringCheckUtf8__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_string_check_utf8"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'javaStringCheckUtf8)+ optimizeFor__field_descriptor+ = Data.ProtoLens.FieldDescriptor "optimize_for"+ (Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FileOptions'OptimizeMode)+ (Data.ProtoLens.OptionalField maybe'optimizeFor)+ goPackage__field_descriptor+ = Data.ProtoLens.FieldDescriptor "go_package"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'goPackage)+ ccGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor "cc_generic_services"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'ccGenericServices)+ javaGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor "java_generic_services"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'javaGenericServices)+ pyGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor "py_generic_services"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'pyGenericServices)+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ ccEnableArenas__field_descriptor+ = Data.ProtoLens.FieldDescriptor "cc_enable_arenas"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'ccEnableArenas)+ objcClassPrefix__field_descriptor+ = Data.ProtoLens.FieldDescriptor "objc_class_prefix"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'objcClassPrefix)+ csharpNamespace__field_descriptor+ = Data.ProtoLens.FieldDescriptor "csharp_namespace"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'csharpNamespace)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, javaPackage__field_descriptor),+ (Data.ProtoLens.Tag 8, javaOuterClassname__field_descriptor),+ (Data.ProtoLens.Tag 10, javaMultipleFiles__field_descriptor),+ (Data.ProtoLens.Tag 20,+ javaGenerateEqualsAndHash__field_descriptor),+ (Data.ProtoLens.Tag 27, javaStringCheckUtf8__field_descriptor),+ (Data.ProtoLens.Tag 9, optimizeFor__field_descriptor),+ (Data.ProtoLens.Tag 11, goPackage__field_descriptor),+ (Data.ProtoLens.Tag 16, ccGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 17, javaGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 18, pyGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 23, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 31, ccEnableArenas__field_descriptor),+ (Data.ProtoLens.Tag 36, objcClassPrefix__field_descriptor),+ (Data.ProtoLens.Tag 37, csharpNamespace__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("java_package", javaPackage__field_descriptor),+ ("java_outer_classname", javaOuterClassname__field_descriptor),+ ("java_multiple_files", javaMultipleFiles__field_descriptor),+ ("java_generate_equals_and_hash",+ javaGenerateEqualsAndHash__field_descriptor),+ ("java_string_check_utf8", javaStringCheckUtf8__field_descriptor),+ ("optimize_for", optimizeFor__field_descriptor),+ ("go_package", goPackage__field_descriptor),+ ("cc_generic_services", ccGenericServices__field_descriptor),+ ("java_generic_services", javaGenericServices__field_descriptor),+ ("py_generic_services", pyGenericServices__field_descriptor),+ ("deprecated", deprecated__field_descriptor),+ ("cc_enable_arenas", ccEnableArenas__field_descriptor),+ ("objc_class_prefix", objcClassPrefix__field_descriptor),+ ("csharp_namespace", csharpNamespace__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data FileOptions'OptimizeMode = FileOptions'SPEED+ | FileOptions'CODE_SIZE+ | FileOptions'LITE_RUNTIME+ deriving (Prelude.Show, Prelude.Eq)++instance Data.Default.Class.Default FileOptions'OptimizeMode where+ def = FileOptions'SPEED++instance Data.ProtoLens.FieldDefault FileOptions'OptimizeMode where+ fieldDefault = FileOptions'SPEED++instance Data.ProtoLens.MessageEnum FileOptions'OptimizeMode where+ maybeToEnum 1 = Prelude.Just FileOptions'SPEED+ maybeToEnum 2 = Prelude.Just FileOptions'CODE_SIZE+ maybeToEnum 3 = Prelude.Just FileOptions'LITE_RUNTIME+ maybeToEnum _ = Prelude.Nothing+ showEnum FileOptions'SPEED = "SPEED"+ showEnum FileOptions'CODE_SIZE = "CODE_SIZE"+ showEnum FileOptions'LITE_RUNTIME = "LITE_RUNTIME"+ readEnum "SPEED" = Prelude.Just FileOptions'SPEED+ readEnum "CODE_SIZE" = Prelude.Just FileOptions'CODE_SIZE+ readEnum "LITE_RUNTIME" = Prelude.Just FileOptions'LITE_RUNTIME+ readEnum _ = Prelude.Nothing++instance Prelude.Enum FileOptions'OptimizeMode where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++) "toEnum: unknown value for enum OptimizeMode: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FileOptions'SPEED = 1+ fromEnum FileOptions'CODE_SIZE = 2+ fromEnum FileOptions'LITE_RUNTIME = 3+ succ FileOptions'LITE_RUNTIME+ = Prelude.error+ "Ident \"FileOptions'OptimizeMode\".Ident \"succ\": bad argument Ident \"FileOptions'LITE_RUNTIME\". This value would be out of bounds."+ succ FileOptions'SPEED = FileOptions'CODE_SIZE+ succ FileOptions'CODE_SIZE = FileOptions'LITE_RUNTIME+ pred FileOptions'SPEED+ = Prelude.error+ "Ident \"FileOptions'OptimizeMode\".Ident \"pred\": bad argument Ident \"FileOptions'SPEED\". This value would be out of bounds."+ pred FileOptions'CODE_SIZE = FileOptions'SPEED+ pred FileOptions'LITE_RUNTIME = FileOptions'CODE_SIZE+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo++instance Prelude.Bounded FileOptions'OptimizeMode where+ minBound = FileOptions'SPEED+ maxBound = FileOptions'LITE_RUNTIME++data GeneratedCodeInfo = GeneratedCodeInfo{_GeneratedCodeInfo'annotation+ :: [GeneratedCodeInfo'Annotation]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "annotation" GeneratedCodeInfo =+ [GeneratedCodeInfo'Annotation]++instance Data.ProtoLens.HasField "annotation" GeneratedCodeInfo+ GeneratedCodeInfo where+ field _+ = Lens.Family2.Unchecked.lens _GeneratedCodeInfo'annotation+ (\ x__ y__ -> x__{_GeneratedCodeInfo'annotation = y__})++instance Data.Default.Class.Default GeneratedCodeInfo where+ def = GeneratedCodeInfo{_GeneratedCodeInfo'annotation = []}++instance Data.ProtoLens.Message GeneratedCodeInfo where+ descriptor+ = let annotation__field_descriptor+ = Data.ProtoLens.FieldDescriptor "annotation"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor GeneratedCodeInfo'Annotation)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked annotation)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, annotation__field_descriptor)])+ (Data.Map.fromList [("annotation", annotation__field_descriptor)])++data GeneratedCodeInfo'Annotation = GeneratedCodeInfo'Annotation{_GeneratedCodeInfo'Annotation'path+ :: [Data.Int.Int32],+ _GeneratedCodeInfo'Annotation'sourceFile+ :: Prelude.Maybe Data.Text.Text,+ _GeneratedCodeInfo'Annotation'begin+ :: Prelude.Maybe Data.Int.Int32,+ _GeneratedCodeInfo'Annotation'end+ :: Prelude.Maybe Data.Int.Int32}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "path" GeneratedCodeInfo'Annotation =+ [Data.Int.Int32]++instance Data.ProtoLens.HasField "path"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = Lens.Family2.Unchecked.lens _GeneratedCodeInfo'Annotation'path+ (\ x__ y__ -> x__{_GeneratedCodeInfo'Annotation'path = y__})++type instance+ Data.ProtoLens.Field "sourceFile" GeneratedCodeInfo'Annotation =+ Data.Text.Text++instance Data.ProtoLens.HasField "sourceFile"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = (Prelude..) maybe'sourceFile+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'sourceFile"+ GeneratedCodeInfo'Annotation+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'sourceFile"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'sourceFile+ (\ x__ y__ -> x__{_GeneratedCodeInfo'Annotation'sourceFile = y__})++type instance+ Data.ProtoLens.Field "begin" GeneratedCodeInfo'Annotation =+ Data.Int.Int32++instance Data.ProtoLens.HasField "begin"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = (Prelude..) maybe'begin+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'begin" GeneratedCodeInfo'Annotation =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'begin"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = Lens.Family2.Unchecked.lens _GeneratedCodeInfo'Annotation'begin+ (\ x__ y__ -> x__{_GeneratedCodeInfo'Annotation'begin = y__})++type instance+ Data.ProtoLens.Field "end" GeneratedCodeInfo'Annotation =+ Data.Int.Int32++instance Data.ProtoLens.HasField "end" GeneratedCodeInfo'Annotation+ GeneratedCodeInfo'Annotation where+ field _+ = (Prelude..) maybe'end+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'end" GeneratedCodeInfo'Annotation =+ Prelude.Maybe Data.Int.Int32++instance Data.ProtoLens.HasField "maybe'end"+ GeneratedCodeInfo'Annotation GeneratedCodeInfo'Annotation where+ field _+ = Lens.Family2.Unchecked.lens _GeneratedCodeInfo'Annotation'end+ (\ x__ y__ -> x__{_GeneratedCodeInfo'Annotation'end = y__})++instance Data.Default.Class.Default GeneratedCodeInfo'Annotation+ where+ def+ = GeneratedCodeInfo'Annotation{_GeneratedCodeInfo'Annotation'path =+ [],+ _GeneratedCodeInfo'Annotation'sourceFile = Prelude.Nothing,+ _GeneratedCodeInfo'Annotation'begin = Prelude.Nothing,+ _GeneratedCodeInfo'Annotation'end = Prelude.Nothing}++instance Data.ProtoLens.Message GeneratedCodeInfo'Annotation where+ descriptor+ = let path__field_descriptor+ = Data.ProtoLens.FieldDescriptor "path"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed path)+ sourceFile__field_descriptor+ = Data.ProtoLens.FieldDescriptor "source_file"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'sourceFile)+ begin__field_descriptor+ = Data.ProtoLens.FieldDescriptor "begin"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'begin)+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor "end"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField maybe'end)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, path__field_descriptor),+ (Data.ProtoLens.Tag 2, sourceFile__field_descriptor),+ (Data.ProtoLens.Tag 3, begin__field_descriptor),+ (Data.ProtoLens.Tag 4, end__field_descriptor)])+ (Data.Map.fromList+ [("path", path__field_descriptor),+ ("source_file", sourceFile__field_descriptor),+ ("begin", begin__field_descriptor),+ ("end", end__field_descriptor)])++data MessageOptions = MessageOptions{_MessageOptions'messageSetWireFormat+ :: Prelude.Maybe Prelude.Bool,+ _MessageOptions'noStandardDescriptorAccessor ::+ Prelude.Maybe Prelude.Bool,+ _MessageOptions'deprecated :: Prelude.Maybe Prelude.Bool,+ _MessageOptions'mapEntry :: Prelude.Maybe Prelude.Bool,+ _MessageOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "messageSetWireFormat" MessageOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "messageSetWireFormat"+ MessageOptions MessageOptions where+ field _+ = (Prelude..) maybe'messageSetWireFormat+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'messageSetWireFormat" MessageOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'messageSetWireFormat"+ MessageOptions MessageOptions where+ field _+ = Lens.Family2.Unchecked.lens _MessageOptions'messageSetWireFormat+ (\ x__ y__ -> x__{_MessageOptions'messageSetWireFormat = y__})++type instance+ Data.ProtoLens.Field "noStandardDescriptorAccessor" MessageOptions+ = Prelude.Bool++instance Data.ProtoLens.HasField "noStandardDescriptorAccessor"+ MessageOptions MessageOptions where+ field _+ = (Prelude..) maybe'noStandardDescriptorAccessor+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'noStandardDescriptorAccessor"+ MessageOptions+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField+ "maybe'noStandardDescriptorAccessor" MessageOptions MessageOptions+ where+ field _+ = Lens.Family2.Unchecked.lens+ _MessageOptions'noStandardDescriptorAccessor+ (\ x__ y__ ->+ x__{_MessageOptions'noStandardDescriptorAccessor = y__})++type instance Data.ProtoLens.Field "deprecated" MessageOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" MessageOptions+ MessageOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'deprecated" MessageOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" MessageOptions+ MessageOptions where+ field _+ = Lens.Family2.Unchecked.lens _MessageOptions'deprecated+ (\ x__ y__ -> x__{_MessageOptions'deprecated = y__})++type instance Data.ProtoLens.Field "mapEntry" MessageOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "mapEntry" MessageOptions+ MessageOptions where+ field _+ = (Prelude..) maybe'mapEntry+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance Data.ProtoLens.Field "maybe'mapEntry" MessageOptions+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'mapEntry" MessageOptions+ MessageOptions where+ field _+ = Lens.Family2.Unchecked.lens _MessageOptions'mapEntry+ (\ x__ y__ -> x__{_MessageOptions'mapEntry = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" MessageOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption"+ MessageOptions MessageOptions where+ field _+ = Lens.Family2.Unchecked.lens _MessageOptions'uninterpretedOption+ (\ x__ y__ -> x__{_MessageOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default MessageOptions where+ def+ = MessageOptions{_MessageOptions'messageSetWireFormat =+ Prelude.Nothing,+ _MessageOptions'noStandardDescriptorAccessor = Prelude.Nothing,+ _MessageOptions'deprecated = Prelude.Nothing,+ _MessageOptions'mapEntry = Prelude.Nothing,+ _MessageOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message MessageOptions where+ descriptor+ = let messageSetWireFormat__field_descriptor+ = Data.ProtoLens.FieldDescriptor "message_set_wire_format"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'messageSetWireFormat)+ noStandardDescriptorAccessor__field_descriptor+ = Data.ProtoLens.FieldDescriptor "no_standard_descriptor_accessor"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'noStandardDescriptorAccessor)+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ mapEntry__field_descriptor+ = Data.ProtoLens.FieldDescriptor "map_entry"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'mapEntry)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, messageSetWireFormat__field_descriptor),+ (Data.ProtoLens.Tag 2,+ noStandardDescriptorAccessor__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 7, mapEntry__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("message_set_wire_format",+ messageSetWireFormat__field_descriptor),+ ("no_standard_descriptor_accessor",+ noStandardDescriptorAccessor__field_descriptor),+ ("deprecated", deprecated__field_descriptor),+ ("map_entry", mapEntry__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data MethodDescriptorProto = MethodDescriptorProto{_MethodDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _MethodDescriptorProto'inputType ::+ Prelude.Maybe Data.Text.Text,+ _MethodDescriptorProto'outputType ::+ Prelude.Maybe Data.Text.Text,+ _MethodDescriptorProto'options ::+ Prelude.Maybe MethodOptions,+ _MethodDescriptorProto'clientStreaming ::+ Prelude.Maybe Prelude.Bool,+ _MethodDescriptorProto'serverStreaming ::+ Prelude.Maybe Prelude.Bool}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" MethodDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" MethodDescriptorProto+ MethodDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" MethodDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" MethodDescriptorProto+ MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _MethodDescriptorProto'name+ (\ x__ y__ -> x__{_MethodDescriptorProto'name = y__})++type instance+ Data.ProtoLens.Field "inputType" MethodDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "inputType" MethodDescriptorProto+ MethodDescriptorProto where+ field _+ = (Prelude..) maybe'inputType+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'inputType" MethodDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'inputType"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _MethodDescriptorProto'inputType+ (\ x__ y__ -> x__{_MethodDescriptorProto'inputType = y__})++type instance+ Data.ProtoLens.Field "outputType" MethodDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "outputType" MethodDescriptorProto+ MethodDescriptorProto where+ field _+ = (Prelude..) maybe'outputType+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'outputType" MethodDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'outputType"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _MethodDescriptorProto'outputType+ (\ x__ y__ -> x__{_MethodDescriptorProto'outputType = y__})++type instance Data.ProtoLens.Field "options" MethodDescriptorProto+ = MethodOptions++instance Data.ProtoLens.HasField "options" MethodDescriptorProto+ MethodDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" MethodDescriptorProto =+ Prelude.Maybe MethodOptions++instance Data.ProtoLens.HasField "maybe'options"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _MethodDescriptorProto'options+ (\ x__ y__ -> x__{_MethodDescriptorProto'options = y__})++type instance+ Data.ProtoLens.Field "clientStreaming" MethodDescriptorProto =+ Prelude.Bool++instance Data.ProtoLens.HasField "clientStreaming"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = (Prelude..) maybe'clientStreaming+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'clientStreaming" MethodDescriptorProto+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'clientStreaming"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'clientStreaming+ (\ x__ y__ -> x__{_MethodDescriptorProto'clientStreaming = y__})++type instance+ Data.ProtoLens.Field "serverStreaming" MethodDescriptorProto =+ Prelude.Bool++instance Data.ProtoLens.HasField "serverStreaming"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = (Prelude..) maybe'serverStreaming+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'serverStreaming" MethodDescriptorProto+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'serverStreaming"+ MethodDescriptorProto MethodDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'serverStreaming+ (\ x__ y__ -> x__{_MethodDescriptorProto'serverStreaming = y__})++instance Data.Default.Class.Default MethodDescriptorProto where+ def+ = MethodDescriptorProto{_MethodDescriptorProto'name =+ Prelude.Nothing,+ _MethodDescriptorProto'inputType = Prelude.Nothing,+ _MethodDescriptorProto'outputType = Prelude.Nothing,+ _MethodDescriptorProto'options = Prelude.Nothing,+ _MethodDescriptorProto'clientStreaming = Prelude.Nothing,+ _MethodDescriptorProto'serverStreaming = Prelude.Nothing}++instance Data.ProtoLens.Message MethodDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ inputType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "input_type"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'inputType)+ outputType__field_descriptor+ = Data.ProtoLens.FieldDescriptor "output_type"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'outputType)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor MethodOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ clientStreaming__field_descriptor+ = Data.ProtoLens.FieldDescriptor "client_streaming"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'clientStreaming)+ serverStreaming__field_descriptor+ = Data.ProtoLens.FieldDescriptor "server_streaming"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'serverStreaming)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, inputType__field_descriptor),+ (Data.ProtoLens.Tag 3, outputType__field_descriptor),+ (Data.ProtoLens.Tag 4, options__field_descriptor),+ (Data.ProtoLens.Tag 5, clientStreaming__field_descriptor),+ (Data.ProtoLens.Tag 6, serverStreaming__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("input_type", inputType__field_descriptor),+ ("output_type", outputType__field_descriptor),+ ("options", options__field_descriptor),+ ("client_streaming", clientStreaming__field_descriptor),+ ("server_streaming", serverStreaming__field_descriptor)])++data MethodOptions = MethodOptions{_MethodOptions'deprecated ::+ Prelude.Maybe Prelude.Bool,+ _MethodOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "deprecated" MethodOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" MethodOptions+ MethodOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance Data.ProtoLens.Field "maybe'deprecated" MethodOptions+ = Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" MethodOptions+ MethodOptions where+ field _+ = Lens.Family2.Unchecked.lens _MethodOptions'deprecated+ (\ x__ y__ -> x__{_MethodOptions'deprecated = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" MethodOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption"+ MethodOptions MethodOptions where+ field _+ = Lens.Family2.Unchecked.lens _MethodOptions'uninterpretedOption+ (\ x__ y__ -> x__{_MethodOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default MethodOptions where+ def+ = MethodOptions{_MethodOptions'deprecated = Prelude.Nothing,+ _MethodOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message MethodOptions where+ descriptor+ = let deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 33, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("deprecated", deprecated__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data OneofDescriptorProto = OneofDescriptorProto{_OneofDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" OneofDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" OneofDescriptorProto+ OneofDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" OneofDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name" OneofDescriptorProto+ OneofDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _OneofDescriptorProto'name+ (\ x__ y__ -> x__{_OneofDescriptorProto'name = y__})++instance Data.Default.Class.Default OneofDescriptorProto where+ def+ = OneofDescriptorProto{_OneofDescriptorProto'name =+ Prelude.Nothing}++instance Data.ProtoLens.Message OneofDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor)])+ (Data.Map.fromList [("name", name__field_descriptor)])++data ServiceDescriptorProto = ServiceDescriptorProto{_ServiceDescriptorProto'name+ :: Prelude.Maybe Data.Text.Text,+ _ServiceDescriptorProto'method ::+ [MethodDescriptorProto],+ _ServiceDescriptorProto'options ::+ Prelude.Maybe ServiceOptions}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" ServiceDescriptorProto =+ Data.Text.Text++instance Data.ProtoLens.HasField "name" ServiceDescriptorProto+ ServiceDescriptorProto where+ field _+ = (Prelude..) maybe'name+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'name" ServiceDescriptorProto =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'name"+ ServiceDescriptorProto ServiceDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _ServiceDescriptorProto'name+ (\ x__ y__ -> x__{_ServiceDescriptorProto'name = y__})++type instance Data.ProtoLens.Field "method" ServiceDescriptorProto+ = [MethodDescriptorProto]++instance Data.ProtoLens.HasField "method" ServiceDescriptorProto+ ServiceDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _ServiceDescriptorProto'method+ (\ x__ y__ -> x__{_ServiceDescriptorProto'method = y__})++type instance Data.ProtoLens.Field "options" ServiceDescriptorProto+ = ServiceOptions++instance Data.ProtoLens.HasField "options" ServiceDescriptorProto+ ServiceDescriptorProto where+ field _+ = (Prelude..) maybe'options+ (Data.ProtoLens.maybeLens Data.Default.Class.def)++type instance+ Data.ProtoLens.Field "maybe'options" ServiceDescriptorProto =+ Prelude.Maybe ServiceOptions++instance Data.ProtoLens.HasField "maybe'options"+ ServiceDescriptorProto ServiceDescriptorProto where+ field _+ = Lens.Family2.Unchecked.lens _ServiceDescriptorProto'options+ (\ x__ y__ -> x__{_ServiceDescriptorProto'options = y__})++instance Data.Default.Class.Default ServiceDescriptorProto where+ def+ = ServiceDescriptorProto{_ServiceDescriptorProto'name =+ Prelude.Nothing,+ _ServiceDescriptorProto'method = [],+ _ServiceDescriptorProto'options = Prelude.Nothing}++instance Data.ProtoLens.Message ServiceDescriptorProto where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'name)+ method__field_descriptor+ = Data.ProtoLens.FieldDescriptor "method"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor MethodDescriptorProto)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked method)+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor "options"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor ServiceOptions)+ (Data.ProtoLens.OptionalField maybe'options)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, method__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("method", method__field_descriptor),+ ("options", options__field_descriptor)])++data ServiceOptions = ServiceOptions{_ServiceOptions'deprecated ::+ Prelude.Maybe Prelude.Bool,+ _ServiceOptions'uninterpretedOption :: [UninterpretedOption]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "deprecated" ServiceOptions =+ Prelude.Bool++instance Data.ProtoLens.HasField "deprecated" ServiceOptions+ ServiceOptions where+ field _+ = (Prelude..) maybe'deprecated+ (Data.ProtoLens.maybeLens Prelude.False)++type instance+ Data.ProtoLens.Field "maybe'deprecated" ServiceOptions =+ Prelude.Maybe Prelude.Bool++instance Data.ProtoLens.HasField "maybe'deprecated" ServiceOptions+ ServiceOptions where+ field _+ = Lens.Family2.Unchecked.lens _ServiceOptions'deprecated+ (\ x__ y__ -> x__{_ServiceOptions'deprecated = y__})++type instance+ Data.ProtoLens.Field "uninterpretedOption" ServiceOptions =+ [UninterpretedOption]++instance Data.ProtoLens.HasField "uninterpretedOption"+ ServiceOptions ServiceOptions where+ field _+ = Lens.Family2.Unchecked.lens _ServiceOptions'uninterpretedOption+ (\ x__ y__ -> x__{_ServiceOptions'uninterpretedOption = y__})++instance Data.Default.Class.Default ServiceOptions where+ def+ = ServiceOptions{_ServiceOptions'deprecated = Prelude.Nothing,+ _ServiceOptions'uninterpretedOption = []}++instance Data.ProtoLens.Message ServiceOptions where+ descriptor+ = let deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor "deprecated"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField maybe'deprecated)+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor "uninterpreted_option"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ uninterpretedOption)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 33, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)])+ (Data.Map.fromList+ [("deprecated", deprecated__field_descriptor),+ ("uninterpreted_option", uninterpretedOption__field_descriptor)])++data SourceCodeInfo = SourceCodeInfo{_SourceCodeInfo'location ::+ [SourceCodeInfo'Location]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "location" SourceCodeInfo =+ [SourceCodeInfo'Location]++instance Data.ProtoLens.HasField "location" SourceCodeInfo+ SourceCodeInfo where+ field _+ = Lens.Family2.Unchecked.lens _SourceCodeInfo'location+ (\ x__ y__ -> x__{_SourceCodeInfo'location = y__})++instance Data.Default.Class.Default SourceCodeInfo where+ def = SourceCodeInfo{_SourceCodeInfo'location = []}++instance Data.ProtoLens.Message SourceCodeInfo where+ descriptor+ = let location__field_descriptor+ = Data.ProtoLens.FieldDescriptor "location"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo'Location)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked location)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, location__field_descriptor)])+ (Data.Map.fromList [("location", location__field_descriptor)])++data SourceCodeInfo'Location = SourceCodeInfo'Location{_SourceCodeInfo'Location'path+ :: [Data.Int.Int32],+ _SourceCodeInfo'Location'span ::+ [Data.Int.Int32],+ _SourceCodeInfo'Location'leadingComments ::+ Prelude.Maybe Data.Text.Text,+ _SourceCodeInfo'Location'trailingComments ::+ Prelude.Maybe Data.Text.Text,+ _SourceCodeInfo'Location'leadingDetachedComments+ :: [Data.Text.Text]}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "path" SourceCodeInfo'Location =+ [Data.Int.Int32]++instance Data.ProtoLens.HasField "path" SourceCodeInfo'Location+ SourceCodeInfo'Location where+ field _+ = Lens.Family2.Unchecked.lens _SourceCodeInfo'Location'path+ (\ x__ y__ -> x__{_SourceCodeInfo'Location'path = y__})++type instance Data.ProtoLens.Field "span" SourceCodeInfo'Location =+ [Data.Int.Int32]++instance Data.ProtoLens.HasField "span" SourceCodeInfo'Location+ SourceCodeInfo'Location where+ field _+ = Lens.Family2.Unchecked.lens _SourceCodeInfo'Location'span+ (\ x__ y__ -> x__{_SourceCodeInfo'Location'span = y__})++type instance+ Data.ProtoLens.Field "leadingComments" SourceCodeInfo'Location =+ Data.Text.Text++instance Data.ProtoLens.HasField "leadingComments"+ SourceCodeInfo'Location SourceCodeInfo'Location where+ field _+ = (Prelude..) maybe'leadingComments+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'leadingComments"+ SourceCodeInfo'Location+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'leadingComments"+ SourceCodeInfo'Location SourceCodeInfo'Location where+ field _+ = Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingComments+ (\ x__ y__ -> x__{_SourceCodeInfo'Location'leadingComments = y__})++type instance+ Data.ProtoLens.Field "trailingComments" SourceCodeInfo'Location =+ Data.Text.Text++instance Data.ProtoLens.HasField "trailingComments"+ SourceCodeInfo'Location SourceCodeInfo'Location where+ field _+ = (Prelude..) maybe'trailingComments+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'trailingComments"+ SourceCodeInfo'Location+ = Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'trailingComments"+ SourceCodeInfo'Location SourceCodeInfo'Location where+ field _+ = Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'trailingComments+ (\ x__ y__ -> x__{_SourceCodeInfo'Location'trailingComments = y__})++type instance+ Data.ProtoLens.Field "leadingDetachedComments"+ SourceCodeInfo'Location+ = [Data.Text.Text]++instance Data.ProtoLens.HasField "leadingDetachedComments"+ SourceCodeInfo'Location SourceCodeInfo'Location where+ field _+ = Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingDetachedComments+ (\ x__ y__ ->+ x__{_SourceCodeInfo'Location'leadingDetachedComments = y__})++instance Data.Default.Class.Default SourceCodeInfo'Location where+ def+ = SourceCodeInfo'Location{_SourceCodeInfo'Location'path = [],+ _SourceCodeInfo'Location'span = [],+ _SourceCodeInfo'Location'leadingComments = Prelude.Nothing,+ _SourceCodeInfo'Location'trailingComments = Prelude.Nothing,+ _SourceCodeInfo'Location'leadingDetachedComments = []}++instance Data.ProtoLens.Message SourceCodeInfo'Location where+ descriptor+ = let path__field_descriptor+ = Data.ProtoLens.FieldDescriptor "path"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed path)+ span__field_descriptor+ = Data.ProtoLens.FieldDescriptor "span"+ (Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Packed span)+ leadingComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor "leading_comments"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'leadingComments)+ trailingComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor "trailing_comments"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'trailingComments)+ leadingDetachedComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor "leading_detached_comments"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked+ leadingDetachedComments)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, path__field_descriptor),+ (Data.ProtoLens.Tag 2, span__field_descriptor),+ (Data.ProtoLens.Tag 3, leadingComments__field_descriptor),+ (Data.ProtoLens.Tag 4, trailingComments__field_descriptor),+ (Data.ProtoLens.Tag 6, leadingDetachedComments__field_descriptor)])+ (Data.Map.fromList+ [("path", path__field_descriptor),+ ("span", span__field_descriptor),+ ("leading_comments", leadingComments__field_descriptor),+ ("trailing_comments", trailingComments__field_descriptor),+ ("leading_detached_comments",+ leadingDetachedComments__field_descriptor)])++data UninterpretedOption = UninterpretedOption{_UninterpretedOption'name+ :: [UninterpretedOption'NamePart],+ _UninterpretedOption'identifierValue ::+ Prelude.Maybe Data.Text.Text,+ _UninterpretedOption'positiveIntValue ::+ Prelude.Maybe Data.Word.Word64,+ _UninterpretedOption'negativeIntValue ::+ Prelude.Maybe Data.Int.Int64,+ _UninterpretedOption'doubleValue ::+ Prelude.Maybe Prelude.Double,+ _UninterpretedOption'stringValue ::+ Prelude.Maybe Data.ByteString.ByteString,+ _UninterpretedOption'aggregateValue ::+ Prelude.Maybe Data.Text.Text}+ deriving (Prelude.Show, Prelude.Eq)++type instance Data.ProtoLens.Field "name" UninterpretedOption =+ [UninterpretedOption'NamePart]++instance Data.ProtoLens.HasField "name" UninterpretedOption+ UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'name+ (\ x__ y__ -> x__{_UninterpretedOption'name = y__})++type instance+ Data.ProtoLens.Field "identifierValue" UninterpretedOption =+ Data.Text.Text++instance Data.ProtoLens.HasField "identifierValue"+ UninterpretedOption UninterpretedOption where+ field _+ = (Prelude..) maybe'identifierValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'identifierValue" UninterpretedOption =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'identifierValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'identifierValue+ (\ x__ y__ -> x__{_UninterpretedOption'identifierValue = y__})++type instance+ Data.ProtoLens.Field "positiveIntValue" UninterpretedOption =+ Data.Word.Word64++instance Data.ProtoLens.HasField "positiveIntValue"+ UninterpretedOption UninterpretedOption where+ field _+ = (Prelude..) maybe'positiveIntValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'positiveIntValue" UninterpretedOption =+ Prelude.Maybe Data.Word.Word64++instance Data.ProtoLens.HasField "maybe'positiveIntValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'positiveIntValue+ (\ x__ y__ -> x__{_UninterpretedOption'positiveIntValue = y__})++type instance+ Data.ProtoLens.Field "negativeIntValue" UninterpretedOption =+ Data.Int.Int64++instance Data.ProtoLens.HasField "negativeIntValue"+ UninterpretedOption UninterpretedOption where+ field _+ = (Prelude..) maybe'negativeIntValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'negativeIntValue" UninterpretedOption =+ Prelude.Maybe Data.Int.Int64++instance Data.ProtoLens.HasField "maybe'negativeIntValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'negativeIntValue+ (\ x__ y__ -> x__{_UninterpretedOption'negativeIntValue = y__})++type instance+ Data.ProtoLens.Field "doubleValue" UninterpretedOption =+ Prelude.Double++instance Data.ProtoLens.HasField "doubleValue" UninterpretedOption+ UninterpretedOption where+ field _+ = (Prelude..) maybe'doubleValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'doubleValue" UninterpretedOption =+ Prelude.Maybe Prelude.Double++instance Data.ProtoLens.HasField "maybe'doubleValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'doubleValue+ (\ x__ y__ -> x__{_UninterpretedOption'doubleValue = y__})++type instance+ Data.ProtoLens.Field "stringValue" UninterpretedOption =+ Data.ByteString.ByteString++instance Data.ProtoLens.HasField "stringValue" UninterpretedOption+ UninterpretedOption where+ field _+ = (Prelude..) maybe'stringValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'stringValue" UninterpretedOption =+ Prelude.Maybe Data.ByteString.ByteString++instance Data.ProtoLens.HasField "maybe'stringValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'stringValue+ (\ x__ y__ -> x__{_UninterpretedOption'stringValue = y__})++type instance+ Data.ProtoLens.Field "aggregateValue" UninterpretedOption =+ Data.Text.Text++instance Data.ProtoLens.HasField "aggregateValue"+ UninterpretedOption UninterpretedOption where+ field _+ = (Prelude..) maybe'aggregateValue+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)++type instance+ Data.ProtoLens.Field "maybe'aggregateValue" UninterpretedOption =+ Prelude.Maybe Data.Text.Text++instance Data.ProtoLens.HasField "maybe'aggregateValue"+ UninterpretedOption UninterpretedOption where+ field _+ = Lens.Family2.Unchecked.lens _UninterpretedOption'aggregateValue+ (\ x__ y__ -> x__{_UninterpretedOption'aggregateValue = y__})++instance Data.Default.Class.Default UninterpretedOption where+ def+ = UninterpretedOption{_UninterpretedOption'name = [],+ _UninterpretedOption'identifierValue = Prelude.Nothing,+ _UninterpretedOption'positiveIntValue = Prelude.Nothing,+ _UninterpretedOption'negativeIntValue = Prelude.Nothing,+ _UninterpretedOption'doubleValue = Prelude.Nothing,+ _UninterpretedOption'stringValue = Prelude.Nothing,+ _UninterpretedOption'aggregateValue = Prelude.Nothing}++instance Data.ProtoLens.Message UninterpretedOption where+ descriptor+ = let name__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name"+ (Data.ProtoLens.MessageField ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption'NamePart)+ (Data.ProtoLens.RepeatedField Data.ProtoLens.Unpacked name)+ identifierValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "identifier_value"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'identifierValue)+ positiveIntValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "positive_int_value"+ (Data.ProtoLens.UInt64Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)+ (Data.ProtoLens.OptionalField maybe'positiveIntValue)+ negativeIntValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "negative_int_value"+ (Data.ProtoLens.Int64Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)+ (Data.ProtoLens.OptionalField maybe'negativeIntValue)+ doubleValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "double_value"+ (Data.ProtoLens.DoubleField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Double)+ (Data.ProtoLens.OptionalField maybe'doubleValue)+ stringValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "string_value"+ (Data.ProtoLens.BytesField ::+ Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+ (Data.ProtoLens.OptionalField maybe'stringValue)+ aggregateValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor "aggregate_value"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField maybe'aggregateValue)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 2, name__field_descriptor),+ (Data.ProtoLens.Tag 3, identifierValue__field_descriptor),+ (Data.ProtoLens.Tag 4, positiveIntValue__field_descriptor),+ (Data.ProtoLens.Tag 5, negativeIntValue__field_descriptor),+ (Data.ProtoLens.Tag 6, doubleValue__field_descriptor),+ (Data.ProtoLens.Tag 7, stringValue__field_descriptor),+ (Data.ProtoLens.Tag 8, aggregateValue__field_descriptor)])+ (Data.Map.fromList+ [("name", name__field_descriptor),+ ("identifier_value", identifierValue__field_descriptor),+ ("positive_int_value", positiveIntValue__field_descriptor),+ ("negative_int_value", negativeIntValue__field_descriptor),+ ("double_value", doubleValue__field_descriptor),+ ("string_value", stringValue__field_descriptor),+ ("aggregate_value", aggregateValue__field_descriptor)])++data UninterpretedOption'NamePart = UninterpretedOption'NamePart{_UninterpretedOption'NamePart'namePart+ :: Data.Text.Text,+ _UninterpretedOption'NamePart'isExtension+ :: Prelude.Bool}+ deriving (Prelude.Show, Prelude.Eq)++type instance+ Data.ProtoLens.Field "namePart" UninterpretedOption'NamePart =+ Data.Text.Text++instance Data.ProtoLens.HasField "namePart"+ UninterpretedOption'NamePart UninterpretedOption'NamePart where+ field _+ = Lens.Family2.Unchecked.lens+ _UninterpretedOption'NamePart'namePart+ (\ x__ y__ -> x__{_UninterpretedOption'NamePart'namePart = y__})++type instance+ Data.ProtoLens.Field "isExtension" UninterpretedOption'NamePart =+ Prelude.Bool++instance Data.ProtoLens.HasField "isExtension"+ UninterpretedOption'NamePart UninterpretedOption'NamePart where+ field _+ = Lens.Family2.Unchecked.lens+ _UninterpretedOption'NamePart'isExtension+ (\ x__ y__ -> x__{_UninterpretedOption'NamePart'isExtension = y__})++instance Data.Default.Class.Default UninterpretedOption'NamePart+ where+ def+ = UninterpretedOption'NamePart{_UninterpretedOption'NamePart'namePart+ = Data.ProtoLens.fieldDefault,+ _UninterpretedOption'NamePart'isExtension =+ Data.ProtoLens.fieldDefault}++instance Data.ProtoLens.Message UninterpretedOption'NamePart where+ descriptor+ = let namePart__field_descriptor+ = Data.ProtoLens.FieldDescriptor "name_part"+ (Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.PlainField Data.ProtoLens.Required namePart)+ isExtension__field_descriptor+ = Data.ProtoLens.FieldDescriptor "is_extension"+ (Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.PlainField Data.ProtoLens.Required isExtension)+ in+ Data.ProtoLens.MessageDescriptor+ (Data.Map.fromList+ [(Data.ProtoLens.Tag 1, namePart__field_descriptor),+ (Data.ProtoLens.Tag 2, isExtension__field_descriptor)])+ (Data.Map.fromList+ [("name_part", namePart__field_descriptor),+ ("is_extension", isExtension__field_descriptor)])++aggregateValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "aggregateValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "aggregateValue" msg)+ (Data.ProtoLens.Field "aggregateValue" msg')+aggregateValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "aggregateValue")++allowAlias ::+ forall msg msg' . Data.ProtoLens.HasField "allowAlias" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "allowAlias" msg)+ (Data.ProtoLens.Field "allowAlias" msg')+allowAlias+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "allowAlias")++annotation ::+ forall msg msg' . Data.ProtoLens.HasField "annotation" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "annotation" msg)+ (Data.ProtoLens.Field "annotation" msg')+annotation+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "annotation")++begin ::+ forall msg msg' . Data.ProtoLens.HasField "begin" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "begin" msg)+ (Data.ProtoLens.Field "begin" msg')+begin+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "begin")++ccEnableArenas ::+ forall msg msg' .+ Data.ProtoLens.HasField "ccEnableArenas" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "ccEnableArenas" msg)+ (Data.ProtoLens.Field "ccEnableArenas" msg')+ccEnableArenas+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "ccEnableArenas")++ccGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "ccGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "ccGenericServices" msg)+ (Data.ProtoLens.Field "ccGenericServices" msg')+ccGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "ccGenericServices")++clientStreaming ::+ forall msg msg' .+ Data.ProtoLens.HasField "clientStreaming" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "clientStreaming" msg)+ (Data.ProtoLens.Field "clientStreaming" msg')+clientStreaming+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "clientStreaming")++csharpNamespace ::+ forall msg msg' .+ Data.ProtoLens.HasField "csharpNamespace" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "csharpNamespace" msg)+ (Data.ProtoLens.Field "csharpNamespace" msg')+csharpNamespace+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "csharpNamespace")++ctype ::+ forall msg msg' . Data.ProtoLens.HasField "ctype" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "ctype" msg)+ (Data.ProtoLens.Field "ctype" msg')+ctype+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "ctype")++defaultValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "defaultValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "defaultValue" msg)+ (Data.ProtoLens.Field "defaultValue" msg')+defaultValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "defaultValue")++dependency ::+ forall msg msg' . Data.ProtoLens.HasField "dependency" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "dependency" msg)+ (Data.ProtoLens.Field "dependency" msg')+dependency+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "dependency")++deprecated ::+ forall msg msg' . Data.ProtoLens.HasField "deprecated" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "deprecated" msg)+ (Data.ProtoLens.Field "deprecated" msg')+deprecated+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "deprecated")++doubleValue ::+ forall msg msg' . Data.ProtoLens.HasField "doubleValue" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "doubleValue" msg)+ (Data.ProtoLens.Field "doubleValue" msg')+doubleValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "doubleValue")++end ::+ forall msg msg' . Data.ProtoLens.HasField "end" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "end" msg)+ (Data.ProtoLens.Field "end" msg')+end+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "end")++enumType ::+ forall msg msg' . Data.ProtoLens.HasField "enumType" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "enumType" msg)+ (Data.ProtoLens.Field "enumType" msg')+enumType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "enumType")++extendee ::+ forall msg msg' . Data.ProtoLens.HasField "extendee" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extendee" msg)+ (Data.ProtoLens.Field "extendee" msg')+extendee+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extendee")++extension ::+ forall msg msg' . Data.ProtoLens.HasField "extension" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "extension" msg)+ (Data.ProtoLens.Field "extension" msg')+extension+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "extension")++extensionRange ::+ forall msg msg' .+ Data.ProtoLens.HasField "extensionRange" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "extensionRange" msg)+ (Data.ProtoLens.Field "extensionRange" msg')+extensionRange+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "extensionRange")++field ::+ forall msg msg' . Data.ProtoLens.HasField "field" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "field" msg)+ (Data.ProtoLens.Field "field" msg')+field+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "field")++file ::+ forall msg msg' . Data.ProtoLens.HasField "file" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "file" msg)+ (Data.ProtoLens.Field "file" msg')+file+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "file")++goPackage ::+ forall msg msg' . Data.ProtoLens.HasField "goPackage" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "goPackage" msg)+ (Data.ProtoLens.Field "goPackage" msg')+goPackage+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "goPackage")++identifierValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "identifierValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "identifierValue" msg)+ (Data.ProtoLens.Field "identifierValue" msg')+identifierValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "identifierValue")++inputType ::+ forall msg msg' . Data.ProtoLens.HasField "inputType" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "inputType" msg)+ (Data.ProtoLens.Field "inputType" msg')+inputType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "inputType")++isExtension ::+ forall msg msg' . Data.ProtoLens.HasField "isExtension" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "isExtension" msg)+ (Data.ProtoLens.Field "isExtension" msg')+isExtension+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "isExtension")++javaGenerateEqualsAndHash ::+ forall msg msg' .+ Data.ProtoLens.HasField "javaGenerateEqualsAndHash" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "javaGenerateEqualsAndHash" msg)+ (Data.ProtoLens.Field "javaGenerateEqualsAndHash" msg')+javaGenerateEqualsAndHash+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "javaGenerateEqualsAndHash")++javaGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "javaGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "javaGenericServices" msg)+ (Data.ProtoLens.Field "javaGenericServices" msg')+javaGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "javaGenericServices")++javaMultipleFiles ::+ forall msg msg' .+ Data.ProtoLens.HasField "javaMultipleFiles" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "javaMultipleFiles" msg)+ (Data.ProtoLens.Field "javaMultipleFiles" msg')+javaMultipleFiles+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "javaMultipleFiles")++javaOuterClassname ::+ forall msg msg' .+ Data.ProtoLens.HasField "javaOuterClassname" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "javaOuterClassname" msg)+ (Data.ProtoLens.Field "javaOuterClassname" msg')+javaOuterClassname+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "javaOuterClassname")++javaPackage ::+ forall msg msg' . Data.ProtoLens.HasField "javaPackage" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "javaPackage" msg)+ (Data.ProtoLens.Field "javaPackage" msg')+javaPackage+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "javaPackage")++javaStringCheckUtf8 ::+ forall msg msg' .+ Data.ProtoLens.HasField "javaStringCheckUtf8" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "javaStringCheckUtf8" msg)+ (Data.ProtoLens.Field "javaStringCheckUtf8" msg')+javaStringCheckUtf8+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "javaStringCheckUtf8")++jsonName ::+ forall msg msg' . Data.ProtoLens.HasField "jsonName" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "jsonName" msg)+ (Data.ProtoLens.Field "jsonName" msg')+jsonName+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "jsonName")++jstype ::+ forall msg msg' . Data.ProtoLens.HasField "jstype" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "jstype" msg)+ (Data.ProtoLens.Field "jstype" msg')+jstype+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "jstype")++label ::+ forall msg msg' . Data.ProtoLens.HasField "label" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "label" msg)+ (Data.ProtoLens.Field "label" msg')+label+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "label")++lazy ::+ forall msg msg' . Data.ProtoLens.HasField "lazy" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "lazy" msg)+ (Data.ProtoLens.Field "lazy" msg')+lazy+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "lazy")++leadingComments ::+ forall msg msg' .+ Data.ProtoLens.HasField "leadingComments" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "leadingComments" msg)+ (Data.ProtoLens.Field "leadingComments" msg')+leadingComments+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "leadingComments")++leadingDetachedComments ::+ forall msg msg' .+ Data.ProtoLens.HasField "leadingDetachedComments" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "leadingDetachedComments" msg)+ (Data.ProtoLens.Field "leadingDetachedComments" msg')+leadingDetachedComments+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "leadingDetachedComments")++location ::+ forall msg msg' . Data.ProtoLens.HasField "location" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "location" msg)+ (Data.ProtoLens.Field "location" msg')+location+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "location")++mapEntry ::+ forall msg msg' . Data.ProtoLens.HasField "mapEntry" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "mapEntry" msg)+ (Data.ProtoLens.Field "mapEntry" msg')+mapEntry+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "mapEntry")++maybe'aggregateValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'aggregateValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'aggregateValue" msg)+ (Data.ProtoLens.Field "maybe'aggregateValue" msg')+maybe'aggregateValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'aggregateValue")++maybe'allowAlias ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'allowAlias" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'allowAlias" msg)+ (Data.ProtoLens.Field "maybe'allowAlias" msg')+maybe'allowAlias+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'allowAlias")++maybe'begin ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'begin" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'begin" msg)+ (Data.ProtoLens.Field "maybe'begin" msg')+maybe'begin+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'begin")++maybe'ccEnableArenas ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'ccEnableArenas" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'ccEnableArenas" msg)+ (Data.ProtoLens.Field "maybe'ccEnableArenas" msg')+maybe'ccEnableArenas+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'ccEnableArenas")++maybe'ccGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'ccGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'ccGenericServices" msg)+ (Data.ProtoLens.Field "maybe'ccGenericServices" msg')+maybe'ccGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'ccGenericServices")++maybe'clientStreaming ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'clientStreaming" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'clientStreaming" msg)+ (Data.ProtoLens.Field "maybe'clientStreaming" msg')+maybe'clientStreaming+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'clientStreaming")++maybe'csharpNamespace ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'csharpNamespace" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'csharpNamespace" msg)+ (Data.ProtoLens.Field "maybe'csharpNamespace" msg')+maybe'csharpNamespace+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'csharpNamespace")++maybe'ctype ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'ctype" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'ctype" msg)+ (Data.ProtoLens.Field "maybe'ctype" msg')+maybe'ctype+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'ctype")++maybe'defaultValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'defaultValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'defaultValue" msg)+ (Data.ProtoLens.Field "maybe'defaultValue" msg')+maybe'defaultValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'defaultValue")++maybe'deprecated ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'deprecated" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'deprecated" msg)+ (Data.ProtoLens.Field "maybe'deprecated" msg')+maybe'deprecated+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'deprecated")++maybe'doubleValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'doubleValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'doubleValue" msg)+ (Data.ProtoLens.Field "maybe'doubleValue" msg')+maybe'doubleValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'doubleValue")++maybe'end ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'end" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'end" msg)+ (Data.ProtoLens.Field "maybe'end" msg')+maybe'end+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'end")++maybe'extendee ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'extendee" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'extendee" msg)+ (Data.ProtoLens.Field "maybe'extendee" msg')+maybe'extendee+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'extendee")++maybe'goPackage ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'goPackage" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'goPackage" msg)+ (Data.ProtoLens.Field "maybe'goPackage" msg')+maybe'goPackage+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'goPackage")++maybe'identifierValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'identifierValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'identifierValue" msg)+ (Data.ProtoLens.Field "maybe'identifierValue" msg')+maybe'identifierValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'identifierValue")++maybe'inputType ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'inputType" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'inputType" msg)+ (Data.ProtoLens.Field "maybe'inputType" msg')+maybe'inputType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'inputType")++maybe'javaGenerateEqualsAndHash ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaGenerateEqualsAndHash" msg+ msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaGenerateEqualsAndHash" msg)+ (Data.ProtoLens.Field "maybe'javaGenerateEqualsAndHash" msg')+maybe'javaGenerateEqualsAndHash+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaGenerateEqualsAndHash")++maybe'javaGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaGenericServices" msg)+ (Data.ProtoLens.Field "maybe'javaGenericServices" msg')+maybe'javaGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaGenericServices")++maybe'javaMultipleFiles ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaMultipleFiles" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaMultipleFiles" msg)+ (Data.ProtoLens.Field "maybe'javaMultipleFiles" msg')+maybe'javaMultipleFiles+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaMultipleFiles")++maybe'javaOuterClassname ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaOuterClassname" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaOuterClassname" msg)+ (Data.ProtoLens.Field "maybe'javaOuterClassname" msg')+maybe'javaOuterClassname+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaOuterClassname")++maybe'javaPackage ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaPackage" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaPackage" msg)+ (Data.ProtoLens.Field "maybe'javaPackage" msg')+maybe'javaPackage+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaPackage")++maybe'javaStringCheckUtf8 ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'javaStringCheckUtf8" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'javaStringCheckUtf8" msg)+ (Data.ProtoLens.Field "maybe'javaStringCheckUtf8" msg')+maybe'javaStringCheckUtf8+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'javaStringCheckUtf8")++maybe'jsonName ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'jsonName" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'jsonName" msg)+ (Data.ProtoLens.Field "maybe'jsonName" msg')+maybe'jsonName+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'jsonName")++maybe'jstype ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'jstype" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'jstype" msg)+ (Data.ProtoLens.Field "maybe'jstype" msg')+maybe'jstype+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'jstype")++maybe'label ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'label" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'label" msg)+ (Data.ProtoLens.Field "maybe'label" msg')+maybe'label+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'label")++maybe'lazy ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'lazy" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'lazy" msg)+ (Data.ProtoLens.Field "maybe'lazy" msg')+maybe'lazy+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'lazy")++maybe'leadingComments ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'leadingComments" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'leadingComments" msg)+ (Data.ProtoLens.Field "maybe'leadingComments" msg')+maybe'leadingComments+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'leadingComments")++maybe'mapEntry ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'mapEntry" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'mapEntry" msg)+ (Data.ProtoLens.Field "maybe'mapEntry" msg')+maybe'mapEntry+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'mapEntry")++maybe'messageSetWireFormat ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'messageSetWireFormat" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'messageSetWireFormat" msg)+ (Data.ProtoLens.Field "maybe'messageSetWireFormat" msg')+maybe'messageSetWireFormat+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'messageSetWireFormat")++maybe'name ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'name" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'name" msg)+ (Data.ProtoLens.Field "maybe'name" msg')+maybe'name+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'name")++maybe'negativeIntValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'negativeIntValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'negativeIntValue" msg)+ (Data.ProtoLens.Field "maybe'negativeIntValue" msg')+maybe'negativeIntValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'negativeIntValue")++maybe'noStandardDescriptorAccessor ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'noStandardDescriptorAccessor"+ msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'noStandardDescriptorAccessor"+ msg)+ (Data.ProtoLens.Field "maybe'noStandardDescriptorAccessor"+ msg')+maybe'noStandardDescriptorAccessor+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'noStandardDescriptorAccessor")++maybe'number ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'number" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'number" msg)+ (Data.ProtoLens.Field "maybe'number" msg')+maybe'number+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'number")++maybe'objcClassPrefix ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'objcClassPrefix" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'objcClassPrefix" msg)+ (Data.ProtoLens.Field "maybe'objcClassPrefix" msg')+maybe'objcClassPrefix+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'objcClassPrefix")++maybe'oneofIndex ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'oneofIndex" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'oneofIndex" msg)+ (Data.ProtoLens.Field "maybe'oneofIndex" msg')+maybe'oneofIndex+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'oneofIndex")++maybe'optimizeFor ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'optimizeFor" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'optimizeFor" msg)+ (Data.ProtoLens.Field "maybe'optimizeFor" msg')+maybe'optimizeFor+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'optimizeFor")++maybe'options ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'options" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'options" msg)+ (Data.ProtoLens.Field "maybe'options" msg')+maybe'options+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'options")++maybe'outputType ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'outputType" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'outputType" msg)+ (Data.ProtoLens.Field "maybe'outputType" msg')+maybe'outputType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'outputType")++maybe'package ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'package" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'package" msg)+ (Data.ProtoLens.Field "maybe'package" msg')+maybe'package+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'package")++maybe'packed ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'packed" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'packed" msg)+ (Data.ProtoLens.Field "maybe'packed" msg')+maybe'packed+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'packed")++maybe'positiveIntValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'positiveIntValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'positiveIntValue" msg)+ (Data.ProtoLens.Field "maybe'positiveIntValue" msg')+maybe'positiveIntValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'positiveIntValue")++maybe'pyGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'pyGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'pyGenericServices" msg)+ (Data.ProtoLens.Field "maybe'pyGenericServices" msg')+maybe'pyGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'pyGenericServices")++maybe'serverStreaming ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'serverStreaming" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'serverStreaming" msg)+ (Data.ProtoLens.Field "maybe'serverStreaming" msg')+maybe'serverStreaming+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'serverStreaming")++maybe'sourceCodeInfo ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'sourceCodeInfo" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'sourceCodeInfo" msg)+ (Data.ProtoLens.Field "maybe'sourceCodeInfo" msg')+maybe'sourceCodeInfo+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'sourceCodeInfo")++maybe'sourceFile ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'sourceFile" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'sourceFile" msg)+ (Data.ProtoLens.Field "maybe'sourceFile" msg')+maybe'sourceFile+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'sourceFile")++maybe'start ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'start" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'start" msg)+ (Data.ProtoLens.Field "maybe'start" msg')+maybe'start+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'start")++maybe'stringValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'stringValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'stringValue" msg)+ (Data.ProtoLens.Field "maybe'stringValue" msg')+maybe'stringValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'stringValue")++maybe'syntax ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'syntax" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'syntax" msg)+ (Data.ProtoLens.Field "maybe'syntax" msg')+maybe'syntax+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'syntax")++maybe'trailingComments ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'trailingComments" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'trailingComments" msg)+ (Data.ProtoLens.Field "maybe'trailingComments" msg')+maybe'trailingComments+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'trailingComments")++maybe'type' ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'type'" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'type'" msg)+ (Data.ProtoLens.Field "maybe'type'" msg')+maybe'type'+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'type'")++maybe'typeName ::+ forall msg msg' .+ Data.ProtoLens.HasField "maybe'typeName" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "maybe'typeName" msg)+ (Data.ProtoLens.Field "maybe'typeName" msg')+maybe'typeName+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "maybe'typeName")++maybe'weak ::+ forall msg msg' . Data.ProtoLens.HasField "maybe'weak" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "maybe'weak" msg)+ (Data.ProtoLens.Field "maybe'weak" msg')+maybe'weak+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "maybe'weak")++messageSetWireFormat ::+ forall msg msg' .+ Data.ProtoLens.HasField "messageSetWireFormat" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "messageSetWireFormat" msg)+ (Data.ProtoLens.Field "messageSetWireFormat" msg')+messageSetWireFormat+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "messageSetWireFormat")++messageType ::+ forall msg msg' . Data.ProtoLens.HasField "messageType" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "messageType" msg)+ (Data.ProtoLens.Field "messageType" msg')+messageType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "messageType")++method ::+ forall msg msg' . Data.ProtoLens.HasField "method" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "method" msg)+ (Data.ProtoLens.Field "method" msg')+method+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "method")++name ::+ forall msg msg' . Data.ProtoLens.HasField "name" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "name" msg)+ (Data.ProtoLens.Field "name" msg')+name+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "name")++namePart ::+ forall msg msg' . Data.ProtoLens.HasField "namePart" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "namePart" msg)+ (Data.ProtoLens.Field "namePart" msg')+namePart+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "namePart")++negativeIntValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "negativeIntValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "negativeIntValue" msg)+ (Data.ProtoLens.Field "negativeIntValue" msg')+negativeIntValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "negativeIntValue")++nestedType ::+ forall msg msg' . Data.ProtoLens.HasField "nestedType" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "nestedType" msg)+ (Data.ProtoLens.Field "nestedType" msg')+nestedType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "nestedType")++noStandardDescriptorAccessor ::+ forall msg msg' .+ Data.ProtoLens.HasField "noStandardDescriptorAccessor" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "noStandardDescriptorAccessor" msg)+ (Data.ProtoLens.Field "noStandardDescriptorAccessor" msg')+noStandardDescriptorAccessor+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "noStandardDescriptorAccessor")++number ::+ forall msg msg' . Data.ProtoLens.HasField "number" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "number" msg)+ (Data.ProtoLens.Field "number" msg')+number+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "number")++objcClassPrefix ::+ forall msg msg' .+ Data.ProtoLens.HasField "objcClassPrefix" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "objcClassPrefix" msg)+ (Data.ProtoLens.Field "objcClassPrefix" msg')+objcClassPrefix+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "objcClassPrefix")++oneofDecl ::+ forall msg msg' . Data.ProtoLens.HasField "oneofDecl" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "oneofDecl" msg)+ (Data.ProtoLens.Field "oneofDecl" msg')+oneofDecl+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "oneofDecl")++oneofIndex ::+ forall msg msg' . Data.ProtoLens.HasField "oneofIndex" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "oneofIndex" msg)+ (Data.ProtoLens.Field "oneofIndex" msg')+oneofIndex+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "oneofIndex")++optimizeFor ::+ forall msg msg' . Data.ProtoLens.HasField "optimizeFor" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "optimizeFor" msg)+ (Data.ProtoLens.Field "optimizeFor" msg')+optimizeFor+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "optimizeFor")++options ::+ forall msg msg' . Data.ProtoLens.HasField "options" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "options" msg)+ (Data.ProtoLens.Field "options" msg')+options+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "options")++outputType ::+ forall msg msg' . Data.ProtoLens.HasField "outputType" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "outputType" msg)+ (Data.ProtoLens.Field "outputType" msg')+outputType+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "outputType")++package ::+ forall msg msg' . Data.ProtoLens.HasField "package" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "package" msg)+ (Data.ProtoLens.Field "package" msg')+package+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "package")++packed ::+ forall msg msg' . Data.ProtoLens.HasField "packed" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "packed" msg)+ (Data.ProtoLens.Field "packed" msg')+packed+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "packed")++path ::+ forall msg msg' . Data.ProtoLens.HasField "path" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "path" msg)+ (Data.ProtoLens.Field "path" msg')+path+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "path")++positiveIntValue ::+ forall msg msg' .+ Data.ProtoLens.HasField "positiveIntValue" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "positiveIntValue" msg)+ (Data.ProtoLens.Field "positiveIntValue" msg')+positiveIntValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "positiveIntValue")++publicDependency ::+ forall msg msg' .+ Data.ProtoLens.HasField "publicDependency" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "publicDependency" msg)+ (Data.ProtoLens.Field "publicDependency" msg')+publicDependency+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "publicDependency")++pyGenericServices ::+ forall msg msg' .+ Data.ProtoLens.HasField "pyGenericServices" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "pyGenericServices" msg)+ (Data.ProtoLens.Field "pyGenericServices" msg')+pyGenericServices+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "pyGenericServices")++reservedName ::+ forall msg msg' .+ Data.ProtoLens.HasField "reservedName" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "reservedName" msg)+ (Data.ProtoLens.Field "reservedName" msg')+reservedName+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "reservedName")++reservedRange ::+ forall msg msg' .+ Data.ProtoLens.HasField "reservedRange" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "reservedRange" msg)+ (Data.ProtoLens.Field "reservedRange" msg')+reservedRange+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "reservedRange")++serverStreaming ::+ forall msg msg' .+ Data.ProtoLens.HasField "serverStreaming" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "serverStreaming" msg)+ (Data.ProtoLens.Field "serverStreaming" msg')+serverStreaming+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "serverStreaming")++service ::+ forall msg msg' . Data.ProtoLens.HasField "service" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "service" msg)+ (Data.ProtoLens.Field "service" msg')+service+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "service")++sourceCodeInfo ::+ forall msg msg' .+ Data.ProtoLens.HasField "sourceCodeInfo" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "sourceCodeInfo" msg)+ (Data.ProtoLens.Field "sourceCodeInfo" msg')+sourceCodeInfo+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "sourceCodeInfo")++sourceFile ::+ forall msg msg' . Data.ProtoLens.HasField "sourceFile" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "sourceFile" msg)+ (Data.ProtoLens.Field "sourceFile" msg')+sourceFile+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "sourceFile")++span ::+ forall msg msg' . Data.ProtoLens.HasField "span" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "span" msg)+ (Data.ProtoLens.Field "span" msg')+span+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "span")++start ::+ forall msg msg' . Data.ProtoLens.HasField "start" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "start" msg)+ (Data.ProtoLens.Field "start" msg')+start+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "start")++stringValue ::+ forall msg msg' . Data.ProtoLens.HasField "stringValue" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "stringValue" msg)+ (Data.ProtoLens.Field "stringValue" msg')+stringValue+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "stringValue")++syntax ::+ forall msg msg' . Data.ProtoLens.HasField "syntax" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "syntax" msg)+ (Data.ProtoLens.Field "syntax" msg')+syntax+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "syntax")++trailingComments ::+ forall msg msg' .+ Data.ProtoLens.HasField "trailingComments" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "trailingComments" msg)+ (Data.ProtoLens.Field "trailingComments" msg')+trailingComments+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "trailingComments")++type' ::+ forall msg msg' . Data.ProtoLens.HasField "type'" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "type'" msg)+ (Data.ProtoLens.Field "type'" msg')+type'+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "type'")++typeName ::+ forall msg msg' . Data.ProtoLens.HasField "typeName" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "typeName" msg)+ (Data.ProtoLens.Field "typeName" msg')+typeName+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "typeName")++uninterpretedOption ::+ forall msg msg' .+ Data.ProtoLens.HasField "uninterpretedOption" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "uninterpretedOption" msg)+ (Data.ProtoLens.Field "uninterpretedOption" msg')+uninterpretedOption+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "uninterpretedOption")++value ::+ forall msg msg' . Data.ProtoLens.HasField "value" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "value" msg)+ (Data.ProtoLens.Field "value" msg')+value+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "value")++weak ::+ forall msg msg' . Data.ProtoLens.HasField "weak" msg msg' =>+ Lens.Family2.Lens msg msg' (Data.ProtoLens.Field "weak" msg)+ (Data.ProtoLens.Field "weak" msg')+weak+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym :: Data.ProtoLens.ProxySym "weak")++weakDependency ::+ forall msg msg' .+ Data.ProtoLens.HasField "weakDependency" msg msg' =>+ Lens.Family2.Lens msg msg'+ (Data.ProtoLens.Field "weakDependency" msg)+ (Data.ProtoLens.Field "weakDependency" msg')+weakDependency+ = Data.ProtoLens.field+ (Data.ProtoLens.ProxySym ::+ Data.ProtoLens.ProxySym "weakDependency")
+ src/Combinators.hs view
@@ -0,0 +1,98 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++{-# OPTIONS_GHC -fno-warn-orphans #-}+-- | Some utility functions, classes and instances for nicer code generation+-- with haskell-src-exts.+--+-- In particular, we define orphan instances of IsString for various syntax+-- datatypes, with some intelligence about Haskell names. For example, @"foo"+-- :: Exp@ is treated as a variable and @"Foo" :: Exp@ is treated as a+-- constructor.+module Combinators where++import Data.Char (isAlphaNum, isUpper)+import Data.String (IsString(..))+import Language.Haskell.Exts.SrcLoc (noLoc)+import Language.Haskell.Exts.Syntax as Syntax++-- | Application of a Haskell type or expression to an argument.+-- For example, to represent @f x y@, you can write+--+-- > "f" @@ "x" @@ "y"+class App a where+ (@@) :: a -> a -> a+ infixl 2 @@++instance App Type where+ (@@) = TyApp++instance App Exp where+ (@@) = App++instance IsString Name where+ fromString s+ -- TODO: better handle the case of mixed ident and symbol characters.+ | all isIdentChar s = Ident s+ | otherwise = Symbol s++-- | Whether this character belongs to an Ident (e.g., "foo") or a symbol+-- (e.g., "<$>").+isIdentChar :: Char -> Bool+isIdentChar c = isAlphaNum c || c `elem` "_'"++instance IsString ModuleName where+ fromString = ModuleName++instance IsString QName where+ fromString f+ -- TODO: support qualified operators (e.g., "Control.Applicative.<$>")+ -- Currently we ignore them due to edge-cases+ -- like the composition operator "Prelude.."+ | isIdentChar (last f), '.' `elem` f+ -- Split "Foo.Bar.baz" into ("Foo.Bar", "baz")+ , (f', '.':f'') <- span (/='.') (reverse f)+ = Qual (fromString $ reverse f'') (fromString $ reverse f')+ | otherwise = UnQual $ fromString f++instance IsString Type where+ fromString fs@(f:_)+ | isUpper f = TyCon $ fromString fs+ fromString fs = TyVar $ fromString fs++instance IsString Exp where+ fromString fs@(f:_)+ | isUpper f = Con $ fromString fs+ fromString fs = Var $ fromString fs++instance IsString Pat where+ fromString = PVar . fromString++instance IsString TyVarBind where+ fromString = UnkindedVar . fromString+++-- Helper functions for literal numbers, since haskell-src-exts doesn't+-- put parentheses around negative numbers automatically.++litInt :: Integer -> Exp+litInt n+ | n >= 0 = Lit $ Int n+ | otherwise = NegApp $ Lit $ Int $ negate n++litFrac :: Rational -> Exp+litFrac x+ | x >= 0 = Lit $ Frac x+ | otherwise = NegApp $ Lit $ Frac $ negate x++pLitInt :: Integer -> Pat+pLitInt n+ | n >= 0 = PLit Signless $ Int n+ | otherwise = PLit Negative $ Int $ negate n++-- | A simple clause of a function binding.+match :: Name -> [Pat] -> Exp -> Match+match n ps e = Match noLoc n ps Nothing (UnGuardedRhs e) Nothing
+ src/Data/ProtoLens/Setup.hs view
@@ -0,0 +1,112 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | Helper functions to generate proto files as part of a @Setup.hs@ script.+--+-- These functions assume that the @proto-lens-protoc@ executable is on the+-- PATH, and throw an exception otherwise. That executable will be installed+-- automatically as part of installing this package; in particular, it should+-- be enough to just list `proto-lens-protoc` in a user package's+-- `build-dependencies`.+--+-- See @README.md@ for instructions on how to use proto-lens with Cabal.+module Data.ProtoLens.Setup+ ( defaultMainGeneratingProtos+ , generatingProtos+ , generateProtos+ ) where++import Distribution.PackageDescription (extraSrcFiles)+import Distribution.Simple.BuildPaths (autogenModulesDir)+import Distribution.Simple.Program (knownPrograms, ConfiguredProgram(..))+import Distribution.Simple.Program.Types (simpleProgram)+import Distribution.Simple.Utils (matchFileGlob)+import Distribution.Simple+ ( defaultMainWithHooks+ , simpleUserHooks+ , UserHooks(..)+ )+import System.FilePath+ ( (</>)+ , equalFilePath+ , isRelative+ , makeRelative+ , takeExtension+ )+import System.Directory (createDirectoryIfMissing, findExecutable)+import System.Process (callProcess)++-- | This behaves the same as 'Distribution.Simple.defaultMain', but+-- auto-generates Haskell files from the .proto files listed in+-- the @.cabal@ file under @extra-source-files@ which are located under the+-- given root directory.+--+-- Writes the generated files to the autogen directory (@dist\/build\/autogen@+-- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).+--+-- Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.+defaultMainGeneratingProtos+ :: FilePath -- ^ The root directory under which .proto files can be found.+ -> IO ()+defaultMainGeneratingProtos root+ = defaultMainWithHooks $ generatingProtos root simpleUserHooks++-- | Augment the given 'UserHooks' to auto-generate Haskell files from the+-- .proto files listed in the @.cabal@ file under @extra-source-files@ which+-- are located under the given root directory.+--+-- Writes the generated files to the autogen directory (@dist\/build\/autogen@+-- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).+--+-- Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.+generatingProtos+ :: FilePath -- ^ The root directory under which .proto files can be found.+ -> UserHooks -> UserHooks+generatingProtos root hooks = hooks+ { buildHook = \p l h f -> generateSources p l >> buildHook hooks p l h f+ , haddockHook = \p l h f -> generateSources p l >> haddockHook hooks p l h f+ -- TODO: add a hook for sdist.+ }+ where+ generateSources p l = do+ -- Replicate Cabal's own logic for parsing file globs.+ files <- concat <$> mapM matchFileGlob (extraSrcFiles p)+ generateProtos root (autogenModulesDir l)+ $ filter (isSubdirectoryOf root)+ $ filter (\f -> takeExtension f == ".proto")+ files++-- | Returns whether the @root@ is a parent folder of @f@.+isSubdirectoryOf :: FilePath -> FilePath -> Bool+isSubdirectoryOf root f+ = isRelative f+ -- Note: `makeRelative root f` returns `f` when f doesn't live under the+ -- root.+ && equalFilePath f (root </> makeRelative root f)++-- | Run the proto compiler to generate Haskell files from the given .proto files.+--+-- Writes the generated files to the autogen directory (@dist\/build\/autogen@+-- for Cabal, and @.stack-work\/dist\/...\/build\/autogen@ for stack).+--+-- Throws an exception if the @proto-lens-protoc@ executable is not on the PATH.+generateProtos+ :: FilePath -- ^ The root directory under which .proto files can be found.+ -> FilePath -- ^ The output directory for the generated Haskell files.+ -> [FilePath] -- ^ The .proto files to process.+ -> IO ()+generateProtos root output files = do+ maybeProtoLensProtoc <- findExecutable "proto-lens-protoc"+ case maybeProtoLensProtoc of+ Nothing -> error "Couldn't find executable proto-lens-protoc."+ Just protoLensProtoc -> do+ createDirectoryIfMissing True output+ callProcess "protoc" $+ [ "--plugin=protoc-gen-haskell=" ++ protoLensProtoc+ , "--haskell_out=" ++ output+ , "--proto_path=" ++ root+ ]+ ++ files
+ src/Definitions.hs view
@@ -0,0 +1,223 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module takes care of collecting all the definitions in a .proto file+-- and assigning Haskell names to all of the defined things (messages, enums+-- and field names).+{-# LANGUAGE DeriveFunctor, OverloadedStrings #-}+module Definitions+ ( Env+ , Definition(..)+ , MessageInfo(..)+ , FieldInfo(..)+ , EnumInfo(..)+ , qualifyEnv+ , unqualifyEnv+ , collectDefinitions+ , definedFieldType+ ) where++import Data.Char (toUpper)+import qualified Data.Map as Map+import Data.Maybe (fromMaybe)+import Data.Monoid+import qualified Data.Set as Set+import Data.Text (Text, cons, splitOn, toLower, uncons, unpack)+import qualified Data.Text as T+import Language.Haskell.Exts.Syntax (Name(..), QName(..), ModuleName(..))+import Lens.Family2 ((^.))+import Bootstrap.Proto.Google.Protobuf.Descriptor+ ( DescriptorProto+ , EnumDescriptorProto+ , FieldDescriptorProto+ , FileDescriptorProto+ , enumType+ , field+ , messageType+ , name+ , nestedType+ , package+ , typeName+ , value+ )++-- | 'Env' contains a mapping of proto names (as specified in the .proto file)+-- to Haskell names. The keys are fully-qualified names, for example,+-- ".package.Message.Submessage". (The protocol_compiler tool emits all+-- message field types in this form, even if they refer to local definitions.)+--+-- The type 'n' can be either a 'Name' (when talking about definitions within+-- the current file) or a (qualified) 'QName' (when talking about definitions+-- either from this or another file).+type Env n = Map.Map Text (Definition n)++data Definition n = Message (MessageInfo n) | Enum (EnumInfo n)+ deriving Functor++-- | All the information needed to define or use a proto message type.+data MessageInfo n = MessageInfo+ { messageName :: n -- ^ Haskell type name+ , messageDescriptor :: DescriptorProto+ , messageFields :: [FieldInfo]+ -- ^ The Haskell names for each field.+ -- This list corresponds 1-1 with "field" in messageDescriptor.+ } deriving Functor++-- | Information about a single field of a proto message.+data FieldInfo = FieldInfo+ { overloadedField :: String+ -- ^ The Haskell overloaded name of this field; may be shared between two+ -- different message data types.+ , recordFieldName :: Name+ -- ^ The Haskell name of this internal record field. Unique within each+ -- module.+ , fieldDescriptor :: FieldDescriptorProto+ }++-- | All the information needed to define or use a proto enum type.+data EnumInfo n = EnumInfo+ { enumName :: n+ , enumDescriptor :: EnumDescriptorProto+ , enumValueNames :: [n]+ -- ^ The Haskell name of each enum value.+ -- This corresponds 1-1 with "value" in EnumDescriptorProto.+ } deriving Functor++mapEnv :: (n -> n') -> Env n -> Env n'+mapEnv f = fmap $ fmap f++-- Lift a set of local definitions into references to a specific module.+qualifyEnv :: ModuleName -> Env Name -> Env QName+qualifyEnv m = mapEnv (Qual m)++-- Lift a set of local definitions into references to the current module.+unqualifyEnv :: Env Name -> Env QName+unqualifyEnv = mapEnv UnQual++-- | Look up the type definition for a given field.+definedFieldType :: FieldDescriptorProto -> Env QName -> Definition QName+definedFieldType fd env = fromMaybe err $ Map.lookup (fd ^. typeName) env+ where+ err = error $ "definedFieldType: Field type " ++ unpack (fd ^. typeName)+ ++ " not found in environment."++-- | Collect all the definitions in the given file (including definitions+-- nested in other messages), and assign Haskell names to them.+collectDefinitions :: FileDescriptorProto -> Env Name+collectDefinitions fd = let+ protoPrefix = "." <> (fd ^. package) <> "."+ hsPrefix = ""+ in Map.fromList $ messageAndEnumDefs protoPrefix hsPrefix+ (fd ^. messageType) (fd ^. enumType)++messageAndEnumDefs :: Text -> String -> [DescriptorProto]+ -> [EnumDescriptorProto] -> [(Text, Definition Name)]+messageAndEnumDefs protoPrefix hsPrefix messages enums+ = concatMap (messageDefs protoPrefix hsPrefix) messages+ ++ map (enumDef protoPrefix hsPrefix) enums++-- | Generate the definitions for a message and its nested types (if any).+messageDefs :: Text -> String -> DescriptorProto+ -> [(Text, Definition Name)]+messageDefs protoPrefix hsPrefix d+ = thisDef : subDefs+ where+ protoName = d ^. name+ hsName = unpack $ capitalize $ d ^. name+ thisDef = (protoPrefix <> protoName+ , Message MessageInfo+ { messageName = Ident $ hsPrefix ++ hsName+ , messageDescriptor = d+ , messageFields =+ [ FieldInfo+ { overloadedField = n+ , recordFieldName = Ident $ "_" ++ hsPrefix' ++ n+ , fieldDescriptor = f+ }+ | f <- d ^. field+ , let n = fieldName (f ^. name)+ ]+ })+ subDefs = messageAndEnumDefs protoPrefix' hsPrefix'+ (d ^. nestedType) (d ^. enumType)+ protoPrefix' = protoPrefix <> protoName <> "."+ hsPrefix' = hsPrefix ++ hsName ++ "'"++-- | Get the name in Haskell of a proto field, taking care of camel casing and+-- clashes with language keywords.+fieldName :: Text -> String+fieldName = unpack . disambiguate . camelCase+ where+ disambiguate s+ -- TODO: use a more comprehensive blacklist of Haskell keywords.+ | s `Set.member` reservedKeywords = s <> "'"+ | otherwise = s+ camelCase s+ -- Preserve any initial underlines (e.g., "_foo_bar" -> "_fooBar").+ | (underlines, rest) <- T.span (== '_') s+ = case splitOn "_" rest of+ -- splitOn always returns a list with at least one element.+ [] -> error $ "camelCase: splitOn returned empty list: "+ ++ show rest+ [""] -> error "camelCase: name consists only of underscores"+ s':ss -> T.concat $ underlines : toLower s' : map capitalize ss++-- | A list of reserved keywords that aren't valid as variable names.+reservedKeywords :: Set.Set Text+reservedKeywords = Set.fromList $+ -- Haskell2010 keywords:+ -- https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4+ -- We don't include keywords that are allowed to be variable names,+ -- in particular: "as", "forall", and "hiding".+ [ "case"+ , "class"+ , "data"+ , "default"+ , "deriving"+ , "do"+ , "else"+ , "foreign"+ , "if"+ , "import"+ , "in"+ , "infix"+ , "infixl"+ , "infixr"+ , "instance"+ , "let"+ , "module"+ , "newtype"+ , "of"+ , "then"+ , "type"+ , "where"+ ]+ ++ -- Nonstandard extensions+ [ "mdo" -- RecursiveDo+ , "rec" -- Arrows, RecursiveDo+ , "proc" -- Arrows+ ]++-- | Generate the definition for an enum type.+enumDef :: Text -> String -> EnumDescriptorProto+ -> (Text, Definition Name)+enumDef protoPrefix hsPrefix d = let+ mkText n = protoPrefix <> n+ mkHsName n = Ident $ hsPrefix ++ unpack n+ in (mkText (d ^. name)+ , Enum EnumInfo+ { enumName = mkHsName (d ^. name)+ , enumDescriptor = d+ , enumValueNames = fmap (mkHsName . (^. name)) (d ^. value)+ })++-- Haskell types must start with an uppercase letter, so we capitalize message+-- and enum names.+-- Name collisions will show up as build errors in the generated haskell file.+capitalize :: Text -> Text+capitalize s+ | Just (c, s') <- uncons s = cons (toUpper c) s'+ | otherwise = s
+ src/Generate.hs view
@@ -0,0 +1,648 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module builds the actual, generated Haskell file+-- for a given input .proto file.+{-# LANGUAGE OverloadedStrings #-}+module Generate(+ generateModule,+ fileSyntaxType,+ ) where+++import Control.Applicative ((<$>))+import Control.Arrow (second)+import qualified Data.Foldable as F+import qualified Data.List as List+import qualified Data.Map as Map+import Data.Maybe (isNothing)+import Data.Ord (comparing)+import qualified Data.Set as Set+import Data.String (fromString)+import Data.Text (unpack)+import qualified Data.Text as T+import Data.Tuple (swap)+import Language.Haskell.Exts.Syntax as Syntax+import Language.Haskell.Exts.SrcLoc (noLoc)+import Lens.Family2 ((^.))+import Bootstrap.Proto.Google.Protobuf.Descriptor+ ( FieldDescriptorProto+ , FieldDescriptorProto'Label(..)+ , FieldDescriptorProto'Type(..)+ , FileDescriptorProto+ , defaultValue+ , label+ , mapEntry+ , maybe'oneofIndex+ , name+ , number+ , options+ , packed+ , syntax+ , type'+ , typeName+ , value+ )++import Combinators+import Definitions++data SyntaxType = Proto2 | Proto3+ deriving Eq++fileSyntaxType :: FileDescriptorProto -> SyntaxType+fileSyntaxType f = case f ^. syntax of+ "proto2" -> Proto2+ "proto3" -> Proto3+ "" -> Proto2 -- The proto compiler doesn't set syntax for proto2 files.+ s -> error $ "Unknown syntax type " ++ show s++-- | Generate a Haskell module for the given input file(s).+-- input contains all defined names, incl. those in this module+generateModule :: ModuleName+ -> [ModuleName] -- ^ The imported modules+ -> SyntaxType+ -> Env Name -- ^ Definitions in this file+ -> Env QName -- ^ Definitions in the imported modules+ -> Module+generateModule modName imports syntaxType definitions importedEnv+ = Module noLoc modName+ [ LanguagePragma noLoc $ map Ident+ ["ScopedTypeVariables", "DataKinds", "TypeFamilies",+ "MultiParamTypeClasses", "FlexibleContexts", "FlexibleInstances"]+ -- Allow unused imports in case we don't import anything from+ -- Data.Text, Data.Int, etc.+ , OptionsPragma noLoc (Just GHC) "-fno-warn-unused-imports"+ ]+ Nothing -- no warning text+ Nothing -- no explicit exports; we export everything.+ -- TODO: Also export public imports, taking care not to+ -- cause a name conflict between field accessors.+ (map importDecl+ -- Note: we import Prelude explicitly to make it qualified.+ $ [ "Prelude", "Data.ProtoLens", "Data.ProtoLens.Message.Enum"+ , "Lens.Family2", "Lens.Family2.Unchecked", "Data.Default.Class"+ , "Data.Text", "Data.Int"+ , "Data.Word", "Data.Map" , "Data.ByteString"+ ]+ ++ imports)+ (concatMap generateDecls (Map.elems definitions)+ ++ concatMap generateFieldDecls allFieldNames)+ where+ env = Map.union (unqualifyEnv definitions) importedEnv+ generateDecls (Message m) = generateMessageDecls syntaxType env m+ generateDecls (Enum e) = generateEnumDecls e+ allFieldNames = F.toList $ Set.fromList+ [ fieldSymbol i+ | Message m <- Map.elems definitions+ , f <- messageFields m+ , i <- fieldInstances (lensInfo syntaxType env f)+ ]++importDecl :: ModuleName -> ImportDecl+importDecl m = ImportDecl+ { importLoc = noLoc+ , importModule = m+ -- Import qualified to avoid clashes with names defined in this module.+ , importQualified = True+ , importSrc = False+ , importSafe = False+ , importPkg = Nothing+ , importAs = Nothing+ , importSpecs = Nothing+ }++generateMessageDecls :: SyntaxType -> Env QName -> MessageInfo Name -> [Decl]+generateMessageDecls syntaxType env info =+ -- data Bar = Bar {+ -- foo :: Baz+ -- }+ [ DataDecl noLoc DataType [] dataName []+ [QualConDecl noLoc [] [] $ RecDecl dataName+ [([recordFieldName f],+ internalType (lensInfo syntaxType env f))+ | f <- fields+ ]+ ]+ [("Prelude.Show", []), ("Prelude.Eq", [])]+ ]+ +++ -- type instance Field.Field "foo" Bar = Baz+ -- instance Field.HasField "foo" Bar where+ -- field _ = ...+ -- Note: for optional fields, this generates an instance both for "foo" and+ -- for "maybe'foo" (see lensInfo below).+ concat+ [ [ TypeInsDecl noLoc+ ("Data.ProtoLens.Field" @@ sym @@ dataType)+ (fieldTypeInstance i)+ , InstDecl noLoc Nothing [] [] "Data.ProtoLens.HasField"+ [sym, dataType, dataType]+ [InsDecl $ FunBind [match "field" [PWildCard] $ fieldAccessor i]]+ ]+ | f <- fields+ , i <- fieldInstances (lensInfo syntaxType env f)+ , let sym = TyPromoted $ PromotedString $ fieldSymbol i+ ]+ +++ -- instance Data.Default.Class.Default Bar where+ [ InstDecl noLoc Nothing [] [] "Data.Default.Class.Default" [dataType]+ -- def = Bar { _Bar_foo = 0 }+ [ InsDecl $ FunBind+ [ match "def" []+ $ RecConstr (UnQual dataName)+ [ FieldUpdate (UnQual $ recordFieldName f)+ (hsFieldDefault syntaxType env (fieldDescriptor f))+ | f <- fields+ ]+ ]+ ]+ -- instance Message.Message Bar where+ , InstDecl noLoc Nothing [] [] "Data.ProtoLens.Message" [dataType]+ [ InsDecl $ FunBind+ [ match "descriptor" [] $ descriptorExpr syntaxType env info]+ ]+ ]+ where+ dataType = TyCon $ UnQual dataName+ MessageInfo { messageName = dataName, messageFields = fields} = info++generateEnumDecls :: EnumInfo Name -> [Decl]+generateEnumDecls info =+ [ DataDecl noLoc DataType [] dataName []+ [QualConDecl noLoc [] [] $ ConDecl n [] | (n, _) <- values]+ [(c, []) | c <- ["Prelude.Show", "Prelude.Eq"]]+ -- instance Data.Default.Class.Default Foo where+ -- def = FirstEnumValue+ , InstDecl noLoc Nothing [] [] "Data.Default.Class.Default" [dataType]+ [ InsDecl $ FunBind [match "def" [] defaultCon]+ ]+ -- instance Data.ProtoLens.FieldDefault Foo where+ -- fieldDefault = FirstEnumValue+ , InstDecl noLoc Nothing [] [] "Data.ProtoLens.FieldDefault" [dataType]+ [ InsDecl $ FunBind [match "fieldDefault" [] defaultCon]+ ]+ -- instance MessageEnum Foo where+ -- maybeToEnum 1 = Just Foo1+ -- maybeToEnum 2 = Just Foo2+ -- ...+ -- maybeToEnum _ = Nothing+ -- showEnum Foo1 = "Foo1"+ -- showEnum Foo2 = "Foo2"+ -- ...+ -- readEnum "Foo1" = Just Foo1+ -- readEnum "Foo2" = Just Foo2+ -- ...+ -- readEnum _ = Nothing+ , InstDecl noLoc Nothing [] [] "Data.ProtoLens.MessageEnum" [dataType]+ [ InsDecl $ FunBind $+ [ match "maybeToEnum" [pLitInt k] $ "Prelude.Just" @@ Con (UnQual n)+ | (n, k) <- values+ ]+ +++ [ match "maybeToEnum" [PWildCard] "Prelude.Nothing"+ ]+ +++ [ match "showEnum" [PVar n] $ Lit $ Syntax.String $ T.unpack ev+ | (n, ev) <- names+ ]+ +++ [ match "readEnum"+ [PLit Signless . Syntax.String $ T.unpack ev]+ $ "Prelude.Just" @@ Con (UnQual n)+ | (n, ev) <- names+ ]+ +++ [ match "readEnum" [PWildCard] "Prelude.Nothing"+ ]+ ]+ -- instance Enum Foo where+ -- toEnum k = maybe (error ("Foo.toEnum: unknown argument for enum Foo: "+ -- ++ show k))+ -- id (maybeToEnum k)+ -- fromEnum Foo1 = 1+ -- fromEnum Foo2 = 2+ -- ..+ -- succ FooN = error "Foo.succ: bad argument FooN."+ -- succ Foo1 = Foo2+ -- succ Foo2 = Foo3+ -- ..+ -- pred Foo1 = error "Foo.succ: bad argument Foo1."+ -- pred Foo2 = Foo1+ -- pred Foo3 = Foo2+ -- ..+ -- enumFrom = messageEnumFrom+ -- enumFromTo = messageEnumFromTo+ -- enumFromThen = messageEnumFromThen+ -- enumFromThenTo = messageEnumFromThenTo+ , InstDecl noLoc Nothing [] [] "Prelude.Enum" [dataType]+ [ InsDecl $ FunBind+ [ match "toEnum" ["k__"]+ $ "Prelude.maybe" @@ errorMessageExpr @@ "Prelude.id"+ @@ ("Data.ProtoLens.maybeToEnum" @@ "k__")+ ]+ , InsDecl $ FunBind+ [ match "fromEnum" [PApp (UnQual c) []] $ litInt k+ | (c, k) <- values+ ]+ , succDecl "succ" maxBoundName succPairs+ , succDecl "pred" minBoundName $ map swap succPairs+ , alias "enumFrom" "Data.ProtoLens.Message.Enum.messageEnumFrom"+ , alias "enumFromTo" "Data.ProtoLens.Message.Enum.messageEnumFromTo"+ , alias "enumFromThen" "Data.ProtoLens.Message.Enum.messageEnumFromThen"+ , alias "enumFromThenTo"+ "Data.ProtoLens.Message.Enum.messageEnumFromThenTo"+ ]+ -- instance Bounded Foo where+ -- minBound = Foo1+ -- maxBound = FooN+ , InstDecl noLoc Nothing [] [] "Prelude.Bounded" [dataType]+ [ InsDecl $ FunBind+ [ match "minBound" [] $ Con $ UnQual minBoundName+ , match "maxBound" [] $ Con $ UnQual maxBoundName+ ]+ ]+ ]+ where+ dataType = TyCon $ UnQual dataName+ EnumInfo+ { enumName = dataName+ , enumValueNames = valueNames+ , enumDescriptor = ed+ } = info+ namesAndValues = zip valueNames (ed ^. value)+ names = map (second (^. name)) namesAndValues+ values = List.sortBy (comparing snd) $+ map (second (fromIntegral . (^. number))) namesAndValues+ minBoundName = fst $ head values+ maxBoundName = fst $ last values++ succPairs = zip ctorNames $ tail ctorNames+ where ctorNames = map fst values+ succDecl funName boundName thePairs = InsDecl $ FunBind $+ match funName [PApp (UnQual boundName) []] (+ "Prelude.error" @@ Lit (Syntax.String $ concat+ [ show dataName, ".", show funName, ": bad argument "+ , show boundName, ". This value would be out of bounds."+ ]))+ :+ [ match funName [PApp (UnQual from) []] $ Con $ UnQual to+ | (from, to) <- thePairs+ ]+ alias funName implName = InsDecl $ FunBind [match funName [] implName]++ defaultCon = Con $ UnQual $ fst $ head names+ errorMessageExpr = "Prelude.error"+ @@ ("Prelude.++" @@ Lit (Syntax.String errorMessage)+ @@ ("Prelude.show" @@ "k__"))+ errorMessage = "toEnum: unknown value for enum " ++ unpack (ed ^. name)+ ++ ": "++generateFieldDecls :: String -> [Decl]+generateFieldDecls fStr =+ -- foo :: forall msg msg' . Field.HasField "foo" msg msg'+ -- => Lens.Lens msg msg' (Field.Field "foo" msg)+ -- (Field.Field "foo" msg')+ -- foo = Field.field (Field.ProxySym :: Field.Proxy "foo")+ [ TypeSig noLoc [f]+ $ TyForall (Just ["msg", "msg'"])+ [ClassA "Data.ProtoLens.HasField" [fSym, "msg", "msg'"]]+ $ "Lens.Family2.Lens" @@ "msg" @@ "msg'"+ @@ ("Data.ProtoLens.Field" @@ fSym @@ "msg")+ @@ ("Data.ProtoLens.Field" @@ fSym @@ "msg'")+ , FunBind [match f []+ $ "Data.ProtoLens.field"+ @@ ExpTypeSig noLoc "Data.ProtoLens.ProxySym"+ ("Data.ProtoLens.ProxySym" @@ fSym)+ ]+ ]+ where+ f = Ident fStr+ fSym = TyPromoted $ PromotedString fStr++------------------------------------------++-- | The Haskell types and lenses for an individual field of a message.+-- This is used to generate both the data record Decl and the instances of+-- HasField.+data LensInfo = LensInfo+ { internalType :: Type -- ^ Internal type in the record+ , fieldInstances :: [FieldInstanceInfo] -- ^ All instances of Field/HasField+ }++data FieldInstanceInfo = FieldInstanceInfo+ { fieldSymbol :: String -- ^ The name of the Symbol corresponding to+ -- this field.+ , fieldTypeInstance :: Type -- ^ The type instance for Field, i.e.,+ -- type instance Field "foo" Bar = ...+ , fieldAccessor :: Exp -- ^ The value of the "field" lens for this+ -- field, i.e.,+ -- field _ = ...+ }++-- | Compile information about the record field type and type/class instances+-- for this particular field.+lensInfo :: SyntaxType -> Env QName -> FieldInfo -> LensInfo+lensInfo syntaxType env f = case fd ^. label of+ -- data Foo = Foo { _Foo_bar :: Bar }+ -- type instance Field "bar" Foo = Bar+ FieldDescriptorProto'LABEL_REQUIRED -> LensInfo baseType+ [FieldInstanceInfo+ { fieldSymbol = baseName+ , fieldTypeInstance = baseType+ , fieldAccessor = rawAccessor+ }]+ FieldDescriptorProto'LABEL_OPTIONAL+ | isDefaultingOptional syntaxType fd+ -> LensInfo baseType+ [FieldInstanceInfo+ { fieldSymbol = baseName+ , fieldTypeInstance = baseType+ , fieldAccessor = rawAccessor+ }]+ FieldDescriptorProto'LABEL_REPEATED+ -- data Foo = Foo { _Foo_bar :: Map Bar Baz }+ -- type instance Field "foo" Foo = Map Bar Baz+ | Just (k,v) <- getMapFields env fd -> let+ mapType = "Data.Map.Map" @@ hsFieldType env (fieldDescriptor k)+ @@ hsFieldType env (fieldDescriptor v)+ in LensInfo mapType+ [FieldInstanceInfo+ { fieldSymbol = baseName+ , fieldTypeInstance = mapType+ , fieldAccessor = rawAccessor+ }]+ -- data Foo = Foo { _Foo_bar :: [Bar] }+ -- type instance Field "bar" Foo = [Bar]+ | otherwise -> LensInfo listType+ [FieldInstanceInfo+ { fieldSymbol = baseName+ , fieldTypeInstance = listType+ , fieldAccessor = rawAccessor+ }]+ -- data Foo = Foo { _Foo_bar :: Maybe Bar }+ -- type instance Field "bar" Foo = Bar+ -- type instance Field "maybe'bar" Foo = Maybe Bar+ FieldDescriptorProto'LABEL_OPTIONAL -> LensInfo maybeType+ [FieldInstanceInfo+ { fieldSymbol = baseName+ , fieldTypeInstance = baseType+ , fieldAccessor = maybeAccessor+ }+ , FieldInstanceInfo+ { fieldSymbol = maybeName+ , fieldTypeInstance = "Prelude.Maybe" @@ baseType+ , fieldAccessor = rawAccessor+ }+ ]+ where+ baseName = overloadedField f+ fd = fieldDescriptor f+ baseType = hsFieldType env fd+ listType = TyList baseType+ maybeType = "Prelude.Maybe" @@ baseType+ maybeName = "maybe'" ++ baseName+ maybeAccessor = "Prelude.." @@ fromString maybeName+ @@ ("Data.ProtoLens.maybeLens"+ @@ hsFieldValueDefault env fd)+ rawAccessor = rawFieldAccessor $ UnQual $ recordFieldName f++-- Get the key/value types of this type, if it is really a map.+getMapFields :: Env QName -> FieldDescriptorProto+ -> Maybe (FieldInfo, FieldInfo)+getMapFields env f+ | f ^. type' == FieldDescriptorProto'TYPE_MESSAGE+ , Message m@MessageInfo { messageDescriptor = d } <- definedFieldType f env+ , d ^. options.mapEntry+ , [f1, f2] <- messageFields m = Just (f1, f2)+ | otherwise = Nothing++hsFieldType :: Env QName -> FieldDescriptorProto -> Type+hsFieldType env fd = case fd ^. type' of+ FieldDescriptorProto'TYPE_DOUBLE -> "Prelude.Double"+ FieldDescriptorProto'TYPE_FLOAT -> "Prelude.Float"+ FieldDescriptorProto'TYPE_INT64 -> "Data.Int.Int64"+ FieldDescriptorProto'TYPE_UINT64 -> "Data.Word.Word64"+ FieldDescriptorProto'TYPE_INT32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_FIXED64 -> "Data.Word.Word64"+ FieldDescriptorProto'TYPE_FIXED32 -> "Data.Word.Word32"+ FieldDescriptorProto'TYPE_BOOL -> "Prelude.Bool"+ FieldDescriptorProto'TYPE_STRING -> "Data.Text.Text"+ FieldDescriptorProto'TYPE_GROUP+ | Message m <- definedFieldType fd env -> TyCon $ messageName m+ | otherwise -> error $ "expected TYPE_GROUP for type name"+ ++ unpack (fd ^. typeName)+ FieldDescriptorProto'TYPE_MESSAGE+ | Message m <- definedFieldType fd env -> TyCon $ messageName m+ | otherwise -> error $ "expected TYPE_MESSAGE for type name"+ ++ unpack (fd ^. typeName)+ FieldDescriptorProto'TYPE_BYTES -> "Data.ByteString.ByteString"+ FieldDescriptorProto'TYPE_UINT32 -> "Data.Word.Word32"+ FieldDescriptorProto'TYPE_ENUM+ | Enum e <- definedFieldType fd env -> TyCon $ enumName e+ | otherwise -> error $ "expected TYPE_ENUM for type name"+ ++ unpack (fd ^. typeName)+ FieldDescriptorProto'TYPE_SFIXED32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_SFIXED64 -> "Data.Int.Int64"+ FieldDescriptorProto'TYPE_SINT32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_SINT64 -> "Data.Int.Int64"++hsFieldDefault :: SyntaxType -> Env QName -> FieldDescriptorProto -> Exp+hsFieldDefault syntaxType env fd+ = case fd ^. label of+ FieldDescriptorProto'LABEL_OPTIONAL+ | isDefaultingOptional syntaxType fd -> hsFieldValueDefault env fd+ | otherwise -> "Prelude.Nothing"+ FieldDescriptorProto'LABEL_REPEATED+ | Just _ <- getMapFields env fd -> "Data.Map.empty"+ | otherwise -> List []+ -- TODO: More sensible initialization of required fields.+ FieldDescriptorProto'LABEL_REQUIRED -> hsFieldValueDefault env fd++hsFieldValueDefault :: Env QName -> FieldDescriptorProto -> Exp+hsFieldValueDefault env fd = case fd ^. type' of+ FieldDescriptorProto'TYPE_MESSAGE -> "Data.Default.Class.def"+ FieldDescriptorProto'TYPE_GROUP -> "Data.Default.Class.def"+ FieldDescriptorProto'TYPE_ENUM+ | T.null def -> "Data.Default.Class.def"+ | Enum e <- definedFieldType fd env+ , Just v <- List.lookup def [ (vd ^. name, n)+ | (vd, n) <- zip (enumDescriptor e ^. value)+ (enumValueNames e)+ ]+ -> Con v+ | otherwise -> errorMessage "enum"+ -- The rest of the cases are for scalar fields that have a fieldDefault+ -- instance.+ _ | T.null def -> "Data.ProtoLens.fieldDefault"+ FieldDescriptorProto'TYPE_BOOL+ | def == "true" -> "Prelude.True"+ | def == "false" -> "Prelude.False"+ | otherwise -> errorMessage "bool"+ FieldDescriptorProto'TYPE_STRING+ -> "Data.Text.pack" @@ Lit (String $ T.unpack def)+ FieldDescriptorProto'TYPE_BYTES+ -> "Data.ByteString.pack"+ @@ List ((mkByte . fromEnum) <$> T.unpack def)+ where mkByte c+ | c > 0 && c < 255 = litInt $ fromIntegral c+ | otherwise = errorMessage "bytes"+ FieldDescriptorProto'TYPE_FLOAT -> defaultFrac $ T.unpack def+ FieldDescriptorProto'TYPE_DOUBLE -> defaultFrac $ T.unpack def+ -- Otherwise, assume it's an integral field:+ _ -> defaultInt $ T.unpack def+ where+ def = fd ^. defaultValue+ errorMessage fieldType+ = error $ "Bad default value " ++ show (T.unpack def)+ ++ " in default value for " ++ fieldType ++ " field "+ ++ unpack (fd ^. name)+ -- float/double fields can use nan, inf and -inf as default values.+ -- The Prelude doesn't provide names for them, so we implement+ -- them as division by zero.+ defaultFrac "nan" = "Prelude./" @@ litFrac 0 @@ litFrac 0+ defaultFrac "inf" = "Prelude./" @@ litFrac 1 @@ litFrac 0+ defaultFrac "-inf" = "Prelude./" @@ litFrac (negate 1) @@ litFrac 0+ defaultFrac s = case reads s of+ [(x, "")] -> litFrac $ toRational (x :: Double)+ _ -> errorMessage "fractional"+ defaultInt s = case reads s of+ [(x, "")] -> litInt x+ _ -> errorMessage "integral"++-- | A lens to access an internal field.+--+-- lens _Foo_bar (\x__ y__ -> x__ { _Foo_bar = y__ })+rawFieldAccessor :: QName -> Exp+rawFieldAccessor f = "Lens.Family2.Unchecked.lens" @@ getter @@ setter+ where+ getter = Var f+ setter = Lambda noLoc ["x__", "y__"]+ $ RecUpdate "x__" [FieldUpdate f "y__"]++descriptorExpr :: SyntaxType -> Env QName -> MessageInfo Name -> Exp+descriptorExpr syntaxType env m+ -- let foo__field_descriptor = ...+ -- ...+ -- in Message.MessageDescriptor+ -- (Data.Map.fromList [(Tag 1, foo__field_descriptor),...])+ -- (Data.Map.fromList [("foo", foo__field_descriptor),...])+ --+ -- (Note that the two maps have the same elements but different keys. We+ -- use the "let" expression to share elements between the two maps.)+ = Let (BDecls $ map fieldDescriptorVarBind $ messageFields m)+ $ "Data.ProtoLens.MessageDescriptor"+ @@ ("Data.Map.fromList" @@ List fieldsByTag)+ @@ ("Data.Map.fromList" @@ List fieldsByTextFormatName)+ where+ fieldsByTag =+ [Tuple Boxed+ [ t, fieldDescriptorVar f ]+ | f <- messageFields m+ , let t = "Data.ProtoLens.Tag"+ @@ litInt (fromIntegral+ $ fieldDescriptor f ^. number)+ ]+ fieldsByTextFormatName =+ [Tuple Boxed+ [ t, fieldDescriptorVar f ]+ | f <- messageFields m+ , let t = Lit $ Syntax.String $ T.unpack+ $ textFormatFieldName env (fieldDescriptor f)+ ]+ fieldDescriptorVar = fromString . fieldDescriptorName+ fieldDescriptorName f+ = fromString $ overloadedField f ++ "__field_descriptor"+ fieldDescriptorVarBind f+ = FunBind+ [match (fromString $ fieldDescriptorName f) []+ $ fieldDescriptorExpr syntaxType env f+ ]++-- | Get the name of the field when used in a text format proto. Groups are+-- special because their text format field name is the name of their type,+-- not the name of the field in the descriptor (e.g. "Foo", not "foo").+textFormatFieldName :: Env QName -> FieldDescriptorProto -> T.Text+textFormatFieldName env descr = case descr ^. type' of+ FieldDescriptorProto'TYPE_GROUP+ | Message msg <- definedFieldType descr env+ -> messageDescriptor msg ^. name+ | otherwise -> error $ "expected TYPE_GROUP for type name"+ ++ T.unpack (descr ^. typeName)+ _ -> descr ^. name++fieldDescriptorExpr :: SyntaxType -> Env QName -> FieldInfo+ -> Exp+fieldDescriptorExpr syntaxType env f+ = "Data.ProtoLens.FieldDescriptor"+ -- Record the original .proto name for text format+ @@ Lit (Syntax.String (T.unpack $ fd ^. name))+ -- Force the type signature since it can't be inferred for Map entry+ -- types.+ @@ ExpTypeSig noLoc (fieldTypeDescriptorExpr (fd ^. type'))+ ("Data.ProtoLens.FieldTypeDescriptor"+ @@ hsFieldType env fd)+ @@ fieldAccessorExpr syntaxType env f+ where+ fd = fieldDescriptor f++fieldAccessorExpr :: SyntaxType -> Env QName -> FieldInfo -> Exp+-- (PlainField Required foo), (OptionalField foo), etc...+fieldAccessorExpr syntaxType env f = accessorCon @@ Var (UnQual hsFieldName)+ where+ fd = fieldDescriptor f+ accessorCon = case fd ^. label of+ FieldDescriptorProto'LABEL_REQUIRED+ -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Required"+ FieldDescriptorProto'LABEL_OPTIONAL+ | isDefaultingOptional syntaxType fd+ -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Optional"+ | otherwise -> "Data.ProtoLens.OptionalField"+ FieldDescriptorProto'LABEL_REPEATED+ | Just (k, v) <- getMapFields env fd+ -> "Data.ProtoLens.MapField"+ @@ fromString (overloadedField k)+ @@ fromString (overloadedField v)+ | otherwise -> "Data.ProtoLens.RepeatedField"+ @@ if fd ^. options.packed+ then "Data.ProtoLens.Packed"+ else "Data.ProtoLens.Unpacked"+ hsFieldName+ = Ident $ case fd ^. label of+ FieldDescriptorProto'LABEL_OPTIONAL+ | not (isDefaultingOptional syntaxType fd)+ -> "maybe'" ++ overloadedField f+ _ -> overloadedField f++isDefaultingOptional :: SyntaxType -> FieldDescriptorProto -> Bool+isDefaultingOptional syntaxType f+ = f ^. label == FieldDescriptorProto'LABEL_OPTIONAL+ && syntaxType == Proto3+ && f ^. type' /= FieldDescriptorProto'TYPE_MESSAGE+ -- For now, we treat oneof's like proto2 optional fields.+ && isNothing (f ^. maybe'oneofIndex)++fieldTypeDescriptorExpr :: FieldDescriptorProto'Type -> Exp+fieldTypeDescriptorExpr =+ (\n -> fromString $ "Data.ProtoLens." ++ n ++ "Field") . \t -> case t of+ FieldDescriptorProto'TYPE_DOUBLE -> "Double"+ FieldDescriptorProto'TYPE_FLOAT -> "Float"+ FieldDescriptorProto'TYPE_INT64 -> "Int64"+ FieldDescriptorProto'TYPE_UINT64 -> "UInt64"+ FieldDescriptorProto'TYPE_INT32 -> "Int32"+ FieldDescriptorProto'TYPE_FIXED64 -> "Fixed64"+ FieldDescriptorProto'TYPE_FIXED32 -> "Fixed32"+ FieldDescriptorProto'TYPE_BOOL -> "Bool"+ FieldDescriptorProto'TYPE_STRING -> "String"+ FieldDescriptorProto'TYPE_GROUP -> "Group"+ FieldDescriptorProto'TYPE_MESSAGE -> "Message"+ FieldDescriptorProto'TYPE_BYTES -> "Bytes"+ FieldDescriptorProto'TYPE_UINT32 -> "UInt32"+ FieldDescriptorProto'TYPE_ENUM -> "Enum"+ FieldDescriptorProto'TYPE_SFIXED32 -> "SFixed32"+ FieldDescriptorProto'TYPE_SFIXED64 -> "SFixed64"+ FieldDescriptorProto'TYPE_SINT32 -> "SInt32"+ FieldDescriptorProto'TYPE_SINT64 -> "SInt64"
+ src/protoc-gen-haskell.hs view
@@ -0,0 +1,142 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++{-# LANGUAGE OverloadedStrings #-}+module Main where++import qualified Data.ByteString as B+import Data.Char (toUpper)+import Data.List (foldl', intercalate)+import qualified Data.Map.Strict as Map+import Data.Map.Strict (Map, unions, (!))+import Data.Monoid ((<>))+import qualified Data.Set as Set+import qualified Data.Text as T+import Data.Text (Text, pack)+import Data.ProtoLens (decodeMessage, def, encodeMessage)+import Language.Haskell.Exts.Pretty (prettyPrint)+import Language.Haskell.Exts.Syntax (ModuleName(..))+import Lens.Family2+import Bootstrap.Proto.Google.Protobuf.Compiler.Plugin+ ( CodeGeneratorRequest+ , CodeGeneratorResponse+ , content+ , file+ , fileToGenerate+ , parameter+ , protoFile+ )+import Bootstrap.Proto.Google.Protobuf.Descriptor+ (FileDescriptorProto, name, dependency, publicDependency)+import System.Environment (getProgName)+import System.Exit (exitWith, ExitCode(..))+import System.IO as IO+import System.FilePath (dropExtension, replaceExtension, splitDirectories)+++import Definitions+import Generate++main = do+ contents <- B.getContents+ progName <- getProgName+ case decodeMessage contents of+ Left e -> IO.hPutStrLn stderr e >> exitWith (ExitFailure 1)+ Right x -> B.putStr $ encodeMessage $ makeResponse progName x++makeResponse :: String -> CodeGeneratorRequest -> CodeGeneratorResponse+makeResponse prog request = let+ outputFiles = generateFiles (request ^. parameter) header+ (request ^. protoFile)+ (request ^. fileToGenerate)+ header :: FileDescriptorProto -> Text+ header f = "{- This file was auto-generated from "+ <> (f ^. name)+ <> " by the " <> pack prog <> " program. -}\n"+ in def & file .~ [ def & name .~ outputName+ & content .~ outputContent+ | (outputName, outputContent) <- outputFiles+ ]++-- | The filename of an input .proto file.+type ProtoFileName = Text++generateFiles :: Text -> (FileDescriptorProto -> Text) -> [FileDescriptorProto]+ -> [ProtoFileName] -> [(Text, Text)]+generateFiles modulePrefix header files toGenerate = let+ filesByName = Map.fromList [(f ^. name, f) | f <- files]+ moduleNames = fmap (moduleName modulePrefix) filesByName+ -- The definitions in each input proto file, indexed by filename.+ definitions = fmap collectDefinitions filesByName+ -- The exports from each .proto file (including any "public import"+ -- dependencies), as they appear to other modules that are importing them;+ -- i.e., qualified by module name.+ exports = transitiveExports files+ localExports = Map.intersectionWith qualifyEnv moduleNames definitions+ exportedEnvs = fmap (\es -> unions [localExports ! e | e <- es]) exports+ -- The contents of the generated Haskell file for a given .proto file.+ buildFile fileName = let+ f = filesByName ! fileName+ deps = f ^. dependency+ env = unions $ fmap (exportedEnvs !) deps+ imports = Set.toAscList $ Set.fromList+ [ moduleNames ! exportName+ | dep <- deps+ , exportName <- exports ! dep+ ]+ in generateModule (moduleNames ! fileName) imports (fileSyntaxType f)+ (definitions ! fileName) env+ in [ ( outputFilePath (moduleNames ! f)+ , header fd <> pack (prettyPrint $ buildFile f)+ )+ | f <- toGenerate+ , let fd = filesByName ! f+ ]++-- | Given a list of .proto files (topologically sorted), determine which+-- files' definitions are exported by which files.+--+-- Files only export their own definitions, along with the definitions exported+-- by any "import public" declarations.+transitiveExports :: [FileDescriptorProto] -> Map ProtoFileName [ProtoFileName]+-- Accumulate the transitive dependencies by folding over the files in+-- topological order.+transitiveExports = foldl' setExportsFromFile Map.empty+ where+ setExportsFromFile :: Map ProtoFileName [ProtoFileName]+ -> FileDescriptorProto+ -> Map ProtoFileName [ProtoFileName]+ setExportsFromFile prevExports fd+ = flip (Map.insert n) prevExports $+ n : concat [ prevExports ! ((fd ^. dependency) !! fromIntegral i)+ -- Note that publicDependency is a list of indices into+ -- the dependency list.+ | i <- fd ^. publicDependency+ ]+ where n = fd ^. name++outputFilePath :: ModuleName -> Text+outputFilePath (ModuleName n) = T.replace "." "/" (T.pack n) <> ".hs"++-- | Get the module name of a .proto file.+moduleName :: Text -> FileDescriptorProto -> ModuleName+moduleName modulePrefix fd = ModuleName $ fixModuleName rawModuleName+ where+ path = fd ^. name+ prefix+ | T.null modulePrefix = "Proto"+ | otherwise = modulePrefix+ fixModuleName "" = ""+ -- Characters allowed in Bazel filenames but not in module names:+ fixModuleName ('.':c:cs) = '.' : toUpper c : fixModuleName cs+ fixModuleName ('_':c:cs) = toUpper c : fixModuleName cs+ fixModuleName ('-':c:cs) = toUpper c : fixModuleName cs+ fixModuleName (c:cs) = c : fixModuleName cs+ rawModuleName = intercalate "." $ (T.unpack prefix :)+ $ splitDirectories $ dropExtension+ $ T.unpack path++