diff --git a/scip.cabal b/scip.cabal
--- a/scip.cabal
+++ b/scip.cabal
@@ -1,7 +1,7 @@
 cabal-version:      3.6
 
 name:               scip
-version:            0.8.1
+version:            0.9.0
 synopsis:           Haskell bindings for the SCIP code intelligence protocol
 description:
     SCIP (pronounced "skip") is a language-agnostic protocol for
@@ -19,7 +19,7 @@
 category:           Language
 build-type:         Simple
 extra-doc-files:    README.md
-tested-with:        GHC == 9.10.3
+tested-with:        GHC == { 9.4.8, 9.6.7, 9.8.4, 9.10.3 }
 
 source-repository head
     type:     git
@@ -35,4 +35,4 @@
     default-language: GHC2021
     build-depends:
         proto-lens-runtime ^>= 0.7.0.0,
-        base               >= 4.20 && < 5
+        base               >= 4.17 && < 5
diff --git a/src/Proto/Scip.hs b/src/Proto/Scip.hs
--- a/src/Proto/Scip.hs
+++ b/src/Proto/Scip.hs
@@ -9,9494 +9,10428 @@
         Descriptor'Suffix'UnrecognizedValue, Diagnostic(),
         DiagnosticTag(..), DiagnosticTag(),
         DiagnosticTag'UnrecognizedValue, Document(), Index(), Language(..),
-        Language(), Language'UnrecognizedValue, Metadata(), Occurrence(),
-        Package(), PositionEncoding(..), PositionEncoding(),
-        PositionEncoding'UnrecognizedValue, ProtocolVersion(..),
-        ProtocolVersion(), ProtocolVersion'UnrecognizedValue,
-        Relationship(), Severity(..), Severity(),
-        Severity'UnrecognizedValue, Signature(), Symbol(),
-        SymbolInformation(), SymbolInformation'Kind(..),
-        SymbolInformation'Kind(), SymbolInformation'Kind'UnrecognizedValue,
-        SymbolRole(..), SymbolRole(), SymbolRole'UnrecognizedValue,
-        SyntaxKind(..), SyntaxKind(IdentifierKeyword, IdentifierModule),
-        SyntaxKind'UnrecognizedValue, TextEncoding(..), TextEncoding(),
-        TextEncoding'UnrecognizedValue, ToolInfo()
-    ) where
-import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism
-import qualified Data.ProtoLens.Runtime.Prelude as Prelude
-import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int
-import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid
-import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum
-import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types
-import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2
-import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked
-import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text
-import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map
-import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString
-import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8
-import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding
-import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector
-import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic
-import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed
-import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.name' @:: Lens' Descriptor Data.Text.Text@
-         * 'Proto.Scip_Fields.disambiguator' @:: Lens' Descriptor Data.Text.Text@
-         * 'Proto.Scip_Fields.suffix' @:: Lens' Descriptor Descriptor'Suffix@ -}
-data Descriptor
-  = Descriptor'_constructor {_Descriptor'name :: !Data.Text.Text,
-                             _Descriptor'disambiguator :: !Data.Text.Text,
-                             _Descriptor'suffix :: !Descriptor'Suffix,
-                             _Descriptor'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Descriptor where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Descriptor "name" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Descriptor'name (\ x__ y__ -> x__ {_Descriptor'name = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Descriptor "disambiguator" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Descriptor'disambiguator
-           (\ x__ y__ -> x__ {_Descriptor'disambiguator = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Descriptor "suffix" Descriptor'Suffix where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Descriptor'suffix (\ x__ y__ -> x__ {_Descriptor'suffix = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Descriptor where
-  messageName _ = Data.Text.pack "scip.Descriptor"
-  packedMessageDescriptor _
-    = "\n\
-      \\n\
-      \Descriptor\DC2\DC2\n\
-      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2$\n\
-      \\rdisambiguator\CAN\STX \SOH(\tR\rdisambiguator\DC2/\n\
-      \\ACKsuffix\CAN\ETX \SOH(\SO2\ETB.scip.Descriptor.SuffixR\ACKsuffix\"\165\SOH\n\
-      \\ACKSuffix\DC2\NAK\n\
-      \\DC1UnspecifiedSuffix\DLE\NUL\DC2\r\n\
-      \\tNamespace\DLE\SOH\DC2\SI\n\
-      \\aPackage\DLE\SOH\SUB\STX\b\SOH\DC2\b\n\
-      \\EOTType\DLE\STX\DC2\b\n\
-      \\EOTTerm\DLE\ETX\DC2\n\
-      \\n\
-      \\ACKMethod\DLE\EOT\DC2\DC1\n\
-      \\rTypeParameter\DLE\ENQ\DC2\r\n\
-      \\tParameter\DLE\ACK\DC2\b\n\
-      \\EOTMeta\DLE\a\DC2\t\n\
-      \\ENQLocal\DLE\b\DC2\t\n\
-      \\ENQMacro\DLE\t\SUB\STX\DLE\SOH"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        name__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "name"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
-              Data.ProtoLens.FieldDescriptor Descriptor
-        disambiguator__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "disambiguator"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"disambiguator")) ::
-              Data.ProtoLens.FieldDescriptor Descriptor
-        suffix__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "suffix"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor Descriptor'Suffix)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"suffix")) ::
-              Data.ProtoLens.FieldDescriptor Descriptor
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, name__field_descriptor),
-           (Data.ProtoLens.Tag 2, disambiguator__field_descriptor),
-           (Data.ProtoLens.Tag 3, suffix__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Descriptor'_unknownFields
-        (\ x__ y__ -> x__ {_Descriptor'_unknownFields = y__})
-  defMessage
-    = Descriptor'_constructor
-        {_Descriptor'name = Data.ProtoLens.fieldDefault,
-         _Descriptor'disambiguator = Data.ProtoLens.fieldDefault,
-         _Descriptor'suffix = Data.ProtoLens.fieldDefault,
-         _Descriptor'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Descriptor -> Data.ProtoLens.Encoding.Bytes.Parser Descriptor
-        loop x
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "name"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "disambiguator"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"disambiguator") y x)
-                        24
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "suffix"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"suffix") y x)
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do loop Data.ProtoLens.defMessage) "Descriptor"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let
-                   _v
-                     = Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"disambiguator") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"suffix") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
-                            ((Prelude..)
-                               ((Prelude..)
-                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                               Prelude.fromEnum _v))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData Descriptor where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Descriptor'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Descriptor'name x__)
-                (Control.DeepSeq.deepseq
-                   (_Descriptor'disambiguator x__)
-                   (Control.DeepSeq.deepseq (_Descriptor'suffix x__) ())))
-newtype Descriptor'Suffix'UnrecognizedValue
-  = Descriptor'Suffix'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data Descriptor'Suffix
-  = Descriptor'UnspecifiedSuffix |
-    Descriptor'Namespace |
-    Descriptor'Type |
-    Descriptor'Term |
-    Descriptor'Method |
-    Descriptor'TypeParameter |
-    Descriptor'Parameter |
-    Descriptor'Meta |
-    Descriptor'Local |
-    Descriptor'Macro |
-    Descriptor'Suffix'Unrecognized !Descriptor'Suffix'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum Descriptor'Suffix where
-  maybeToEnum 0 = Prelude.Just Descriptor'UnspecifiedSuffix
-  maybeToEnum 1 = Prelude.Just Descriptor'Namespace
-  maybeToEnum 2 = Prelude.Just Descriptor'Type
-  maybeToEnum 3 = Prelude.Just Descriptor'Term
-  maybeToEnum 4 = Prelude.Just Descriptor'Method
-  maybeToEnum 5 = Prelude.Just Descriptor'TypeParameter
-  maybeToEnum 6 = Prelude.Just Descriptor'Parameter
-  maybeToEnum 7 = Prelude.Just Descriptor'Meta
-  maybeToEnum 8 = Prelude.Just Descriptor'Local
-  maybeToEnum 9 = Prelude.Just Descriptor'Macro
-  maybeToEnum k
-    = Prelude.Just
-        (Descriptor'Suffix'Unrecognized
-           (Descriptor'Suffix'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum Descriptor'UnspecifiedSuffix = "UnspecifiedSuffix"
-  showEnum Descriptor'Namespace = "Namespace"
-  showEnum Descriptor'Type = "Type"
-  showEnum Descriptor'Term = "Term"
-  showEnum Descriptor'Method = "Method"
-  showEnum Descriptor'TypeParameter = "TypeParameter"
-  showEnum Descriptor'Parameter = "Parameter"
-  showEnum Descriptor'Meta = "Meta"
-  showEnum Descriptor'Local = "Local"
-  showEnum Descriptor'Macro = "Macro"
-  showEnum
-    (Descriptor'Suffix'Unrecognized (Descriptor'Suffix'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedSuffix"
-    = Prelude.Just Descriptor'UnspecifiedSuffix
-    | (Prelude.==) k "Namespace" = Prelude.Just Descriptor'Namespace
-    | (Prelude.==) k "Package" = Prelude.Just Descriptor'Package
-    | (Prelude.==) k "Type" = Prelude.Just Descriptor'Type
-    | (Prelude.==) k "Term" = Prelude.Just Descriptor'Term
-    | (Prelude.==) k "Method" = Prelude.Just Descriptor'Method
-    | (Prelude.==) k "TypeParameter"
-    = Prelude.Just Descriptor'TypeParameter
-    | (Prelude.==) k "Parameter" = Prelude.Just Descriptor'Parameter
-    | (Prelude.==) k "Meta" = Prelude.Just Descriptor'Meta
-    | (Prelude.==) k "Local" = Prelude.Just Descriptor'Local
-    | (Prelude.==) k "Macro" = Prelude.Just Descriptor'Macro
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded Descriptor'Suffix where
-  minBound = Descriptor'UnspecifiedSuffix
-  maxBound = Descriptor'Macro
-instance Prelude.Enum Descriptor'Suffix where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum Suffix: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum Descriptor'UnspecifiedSuffix = 0
-  fromEnum Descriptor'Namespace = 1
-  fromEnum Descriptor'Type = 2
-  fromEnum Descriptor'Term = 3
-  fromEnum Descriptor'Method = 4
-  fromEnum Descriptor'TypeParameter = 5
-  fromEnum Descriptor'Parameter = 6
-  fromEnum Descriptor'Meta = 7
-  fromEnum Descriptor'Local = 8
-  fromEnum Descriptor'Macro = 9
-  fromEnum
-    (Descriptor'Suffix'Unrecognized (Descriptor'Suffix'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ Descriptor'Macro
-    = Prelude.error
-        "Descriptor'Suffix.succ: bad argument Descriptor'Macro. This value would be out of bounds."
-  succ Descriptor'UnspecifiedSuffix = Descriptor'Namespace
-  succ Descriptor'Namespace = Descriptor'Type
-  succ Descriptor'Type = Descriptor'Term
-  succ Descriptor'Term = Descriptor'Method
-  succ Descriptor'Method = Descriptor'TypeParameter
-  succ Descriptor'TypeParameter = Descriptor'Parameter
-  succ Descriptor'Parameter = Descriptor'Meta
-  succ Descriptor'Meta = Descriptor'Local
-  succ Descriptor'Local = Descriptor'Macro
-  succ (Descriptor'Suffix'Unrecognized _)
-    = Prelude.error
-        "Descriptor'Suffix.succ: bad argument: unrecognized value"
-  pred Descriptor'UnspecifiedSuffix
-    = Prelude.error
-        "Descriptor'Suffix.pred: bad argument Descriptor'UnspecifiedSuffix. This value would be out of bounds."
-  pred Descriptor'Namespace = Descriptor'UnspecifiedSuffix
-  pred Descriptor'Type = Descriptor'Namespace
-  pred Descriptor'Term = Descriptor'Type
-  pred Descriptor'Method = Descriptor'Term
-  pred Descriptor'TypeParameter = Descriptor'Method
-  pred Descriptor'Parameter = Descriptor'TypeParameter
-  pred Descriptor'Meta = Descriptor'Parameter
-  pred Descriptor'Local = Descriptor'Meta
-  pred Descriptor'Macro = Descriptor'Local
-  pred (Descriptor'Suffix'Unrecognized _)
-    = Prelude.error
-        "Descriptor'Suffix.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault Descriptor'Suffix where
-  fieldDefault = Descriptor'UnspecifiedSuffix
-instance Control.DeepSeq.NFData Descriptor'Suffix where
-  rnf x__ = Prelude.seq x__ ()
-pattern Descriptor'Package :: Descriptor'Suffix
-pattern Descriptor'Package = Descriptor'Namespace
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.severity' @:: Lens' Diagnostic Severity@
-         * 'Proto.Scip_Fields.code' @:: Lens' Diagnostic Data.Text.Text@
-         * 'Proto.Scip_Fields.message' @:: Lens' Diagnostic Data.Text.Text@
-         * 'Proto.Scip_Fields.source' @:: Lens' Diagnostic Data.Text.Text@
-         * 'Proto.Scip_Fields.tags' @:: Lens' Diagnostic [DiagnosticTag]@
-         * 'Proto.Scip_Fields.vec'tags' @:: Lens' Diagnostic (Data.Vector.Vector DiagnosticTag)@ -}
-data Diagnostic
-  = Diagnostic'_constructor {_Diagnostic'severity :: !Severity,
-                             _Diagnostic'code :: !Data.Text.Text,
-                             _Diagnostic'message :: !Data.Text.Text,
-                             _Diagnostic'source :: !Data.Text.Text,
-                             _Diagnostic'tags :: !(Data.Vector.Vector DiagnosticTag),
-                             _Diagnostic'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Diagnostic where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Diagnostic "severity" Severity where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'severity
-           (\ x__ y__ -> x__ {_Diagnostic'severity = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Diagnostic "code" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'code (\ x__ y__ -> x__ {_Diagnostic'code = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Diagnostic "message" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'message (\ x__ y__ -> x__ {_Diagnostic'message = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Diagnostic "source" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'source (\ x__ y__ -> x__ {_Diagnostic'source = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Diagnostic "tags" [DiagnosticTag] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'tags (\ x__ y__ -> x__ {_Diagnostic'tags = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Diagnostic "vec'tags" (Data.Vector.Vector DiagnosticTag) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Diagnostic'tags (\ x__ y__ -> x__ {_Diagnostic'tags = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Diagnostic where
-  messageName _ = Data.Text.pack "scip.Diagnostic"
-  packedMessageDescriptor _
-    = "\n\
-      \\n\
-      \Diagnostic\DC2*\n\
-      \\bseverity\CAN\SOH \SOH(\SO2\SO.scip.SeverityR\bseverity\DC2\DC2\n\
-      \\EOTcode\CAN\STX \SOH(\tR\EOTcode\DC2\CAN\n\
-      \\amessage\CAN\ETX \SOH(\tR\amessage\DC2\SYN\n\
-      \\ACKsource\CAN\EOT \SOH(\tR\ACKsource\DC2'\n\
-      \\EOTtags\CAN\ENQ \ETX(\SO2\DC3.scip.DiagnosticTagR\EOTtags"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        severity__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "severity"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor Severity)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"severity")) ::
-              Data.ProtoLens.FieldDescriptor Diagnostic
-        code__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "code"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"code")) ::
-              Data.ProtoLens.FieldDescriptor Diagnostic
-        message__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "message"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"message")) ::
-              Data.ProtoLens.FieldDescriptor Diagnostic
-        source__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "source"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"source")) ::
-              Data.ProtoLens.FieldDescriptor Diagnostic
-        tags__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "tags"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor DiagnosticTag)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"tags")) ::
-              Data.ProtoLens.FieldDescriptor Diagnostic
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, severity__field_descriptor),
-           (Data.ProtoLens.Tag 2, code__field_descriptor),
-           (Data.ProtoLens.Tag 3, message__field_descriptor),
-           (Data.ProtoLens.Tag 4, source__field_descriptor),
-           (Data.ProtoLens.Tag 5, tags__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Diagnostic'_unknownFields
-        (\ x__ y__ -> x__ {_Diagnostic'_unknownFields = y__})
-  defMessage
-    = Diagnostic'_constructor
-        {_Diagnostic'severity = Data.ProtoLens.fieldDefault,
-         _Diagnostic'code = Data.ProtoLens.fieldDefault,
-         _Diagnostic'message = Data.ProtoLens.fieldDefault,
-         _Diagnostic'source = Data.ProtoLens.fieldDefault,
-         _Diagnostic'tags = Data.Vector.Generic.empty,
-         _Diagnostic'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Diagnostic
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DiagnosticTag
-             -> Data.ProtoLens.Encoding.Bytes.Parser Diagnostic
-        loop x mutable'tags
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'tags <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'tags)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'tags") frozen'tags x))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "severity"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"severity") y x)
-                                  mutable'tags
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "code"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"code") y x)
-                                  mutable'tags
-                        26
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "message"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"message") y x)
-                                  mutable'tags
-                        34
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "source"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"source") y x)
-                                  mutable'tags
-                        40
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (Prelude.fmap
-                                           Prelude.toEnum
-                                           (Prelude.fmap
-                                              Prelude.fromIntegral
-                                              Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                        "tags"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append mutable'tags y)
-                                loop x v
-                        42
-                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                        Data.ProtoLens.Encoding.Bytes.isolate
-                                          (Prelude.fromIntegral len)
-                                          ((let
-                                              ploop qs
-                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
-                                                     if packedEnd then
-                                                         Prelude.return qs
-                                                     else
-                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                                                    (Prelude.fmap
-                                                                       Prelude.toEnum
-                                                                       (Prelude.fmap
-                                                                          Prelude.fromIntegral
-                                                                          Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                                                    "tags"
-                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                                     (Data.ProtoLens.Encoding.Growing.append
-                                                                        qs q)
-                                                            ploop qs'
-                                            in ploop)
-                                             mutable'tags)
-                                loop x y
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'tags
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'tags <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                Data.ProtoLens.Encoding.Growing.new
-              loop Data.ProtoLens.defMessage mutable'tags)
-          "Diagnostic"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"severity") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
-                      ((Prelude..)
-                         ((Prelude..)
-                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                         Prelude.fromEnum _v))
-             ((Data.Monoid.<>)
-                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"code") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"message") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                            ((Prelude..)
-                               (\ bs
-                                  -> (Data.Monoid.<>)
-                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                               Data.Text.Encoding.encodeUtf8 _v))
-                   ((Data.Monoid.<>)
-                      (let
-                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"source") _x
-                       in
-                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                             Data.Monoid.mempty
-                         else
-                             (Data.Monoid.<>)
-                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
-                               ((Prelude..)
-                                  (\ bs
-                                     -> (Data.Monoid.<>)
-                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                             (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                  Data.Text.Encoding.encodeUtf8 _v))
-                      ((Data.Monoid.<>)
-                         (let
-                            p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'tags") _x
-                          in
-                            if Data.Vector.Generic.null p then
-                                Data.Monoid.mempty
-                            else
-                                (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
-                                  ((\ bs
-                                      -> (Data.Monoid.<>)
-                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                     (Data.ProtoLens.Encoding.Bytes.runBuilder
-                                        (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                                           ((Prelude..)
-                                              ((Prelude..)
-                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                 Prelude.fromIntegral)
-                                              Prelude.fromEnum)
-                                           p))))
-                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
-instance Control.DeepSeq.NFData Diagnostic where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Diagnostic'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Diagnostic'severity x__)
-                (Control.DeepSeq.deepseq
-                   (_Diagnostic'code x__)
-                   (Control.DeepSeq.deepseq
-                      (_Diagnostic'message x__)
-                      (Control.DeepSeq.deepseq
-                         (_Diagnostic'source x__)
-                         (Control.DeepSeq.deepseq (_Diagnostic'tags x__) ())))))
-newtype DiagnosticTag'UnrecognizedValue
-  = DiagnosticTag'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data DiagnosticTag
-  = UnspecifiedDiagnosticTag |
-    Unnecessary |
-    Deprecated |
-    DiagnosticTag'Unrecognized !DiagnosticTag'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum DiagnosticTag where
-  maybeToEnum 0 = Prelude.Just UnspecifiedDiagnosticTag
-  maybeToEnum 1 = Prelude.Just Unnecessary
-  maybeToEnum 2 = Prelude.Just Deprecated
-  maybeToEnum k
-    = Prelude.Just
-        (DiagnosticTag'Unrecognized
-           (DiagnosticTag'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedDiagnosticTag = "UnspecifiedDiagnosticTag"
-  showEnum Unnecessary = "Unnecessary"
-  showEnum Deprecated = "Deprecated"
-  showEnum
-    (DiagnosticTag'Unrecognized (DiagnosticTag'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedDiagnosticTag"
-    = Prelude.Just UnspecifiedDiagnosticTag
-    | (Prelude.==) k "Unnecessary" = Prelude.Just Unnecessary
-    | (Prelude.==) k "Deprecated" = Prelude.Just Deprecated
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded DiagnosticTag where
-  minBound = UnspecifiedDiagnosticTag
-  maxBound = Deprecated
-instance Prelude.Enum DiagnosticTag where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum DiagnosticTag: "
-              (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedDiagnosticTag = 0
-  fromEnum Unnecessary = 1
-  fromEnum Deprecated = 2
-  fromEnum
-    (DiagnosticTag'Unrecognized (DiagnosticTag'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ Deprecated
-    = Prelude.error
-        "DiagnosticTag.succ: bad argument Deprecated. This value would be out of bounds."
-  succ UnspecifiedDiagnosticTag = Unnecessary
-  succ Unnecessary = Deprecated
-  succ (DiagnosticTag'Unrecognized _)
-    = Prelude.error
-        "DiagnosticTag.succ: bad argument: unrecognized value"
-  pred UnspecifiedDiagnosticTag
-    = Prelude.error
-        "DiagnosticTag.pred: bad argument UnspecifiedDiagnosticTag. This value would be out of bounds."
-  pred Unnecessary = UnspecifiedDiagnosticTag
-  pred Deprecated = Unnecessary
-  pred (DiagnosticTag'Unrecognized _)
-    = Prelude.error
-        "DiagnosticTag.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault DiagnosticTag where
-  fieldDefault = UnspecifiedDiagnosticTag
-instance Control.DeepSeq.NFData DiagnosticTag where
-  rnf x__ = Prelude.seq x__ ()
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.language' @:: Lens' Document Data.Text.Text@
-         * 'Proto.Scip_Fields.relativePath' @:: Lens' Document Data.Text.Text@
-         * 'Proto.Scip_Fields.occurrences' @:: Lens' Document [Occurrence]@
-         * 'Proto.Scip_Fields.vec'occurrences' @:: Lens' Document (Data.Vector.Vector Occurrence)@
-         * 'Proto.Scip_Fields.symbols' @:: Lens' Document [SymbolInformation]@
-         * 'Proto.Scip_Fields.vec'symbols' @:: Lens' Document (Data.Vector.Vector SymbolInformation)@
-         * 'Proto.Scip_Fields.text' @:: Lens' Document Data.Text.Text@
-         * 'Proto.Scip_Fields.positionEncoding' @:: Lens' Document PositionEncoding@ -}
-data Document
-  = Document'_constructor {_Document'language :: !Data.Text.Text,
-                           _Document'relativePath :: !Data.Text.Text,
-                           _Document'occurrences :: !(Data.Vector.Vector Occurrence),
-                           _Document'symbols :: !(Data.Vector.Vector SymbolInformation),
-                           _Document'text :: !Data.Text.Text,
-                           _Document'positionEncoding :: !PositionEncoding,
-                           _Document'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Document where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Document "language" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'language (\ x__ y__ -> x__ {_Document'language = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Document "relativePath" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'relativePath
-           (\ x__ y__ -> x__ {_Document'relativePath = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Document "occurrences" [Occurrence] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'occurrences
-           (\ x__ y__ -> x__ {_Document'occurrences = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Document "vec'occurrences" (Data.Vector.Vector Occurrence) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'occurrences
-           (\ x__ y__ -> x__ {_Document'occurrences = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Document "symbols" [SymbolInformation] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'symbols (\ x__ y__ -> x__ {_Document'symbols = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Document "vec'symbols" (Data.Vector.Vector SymbolInformation) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'symbols (\ x__ y__ -> x__ {_Document'symbols = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Document "text" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'text (\ x__ y__ -> x__ {_Document'text = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Document "positionEncoding" PositionEncoding where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Document'positionEncoding
-           (\ x__ y__ -> x__ {_Document'positionEncoding = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Document where
-  messageName _ = Data.Text.pack "scip.Document"
-  packedMessageDescriptor _
-    = "\n\
-      \\bDocument\DC2\SUB\n\
-      \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2#\n\
-      \\rrelative_path\CAN\SOH \SOH(\tR\frelativePath\DC22\n\
-      \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\
-      \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\
-      \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\
-      \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        language__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "language"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"language")) ::
-              Data.ProtoLens.FieldDescriptor Document
-        relativePath__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "relative_path"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"relativePath")) ::
-              Data.ProtoLens.FieldDescriptor Document
-        occurrences__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "occurrences"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Occurrence)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"occurrences")) ::
-              Data.ProtoLens.FieldDescriptor Document
-        symbols__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "symbols"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"symbols")) ::
-              Data.ProtoLens.FieldDescriptor Document
-        text__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "text"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"text")) ::
-              Data.ProtoLens.FieldDescriptor Document
-        positionEncoding__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "position_encoding"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor PositionEncoding)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"positionEncoding")) ::
-              Data.ProtoLens.FieldDescriptor Document
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 4, language__field_descriptor),
-           (Data.ProtoLens.Tag 1, relativePath__field_descriptor),
-           (Data.ProtoLens.Tag 2, occurrences__field_descriptor),
-           (Data.ProtoLens.Tag 3, symbols__field_descriptor),
-           (Data.ProtoLens.Tag 5, text__field_descriptor),
-           (Data.ProtoLens.Tag 6, positionEncoding__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Document'_unknownFields
-        (\ x__ y__ -> x__ {_Document'_unknownFields = y__})
-  defMessage
-    = Document'_constructor
-        {_Document'language = Data.ProtoLens.fieldDefault,
-         _Document'relativePath = Data.ProtoLens.fieldDefault,
-         _Document'occurrences = Data.Vector.Generic.empty,
-         _Document'symbols = Data.Vector.Generic.empty,
-         _Document'text = Data.ProtoLens.fieldDefault,
-         _Document'positionEncoding = Data.ProtoLens.fieldDefault,
-         _Document'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Document
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence
-             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation
-                -> Data.ProtoLens.Encoding.Bytes.Parser Document
-        loop x mutable'occurrences mutable'symbols
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                 mutable'occurrences)
-                      frozen'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                             mutable'symbols)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'occurrences") frozen'occurrences
-                              (Lens.Family2.set
-                                 (Data.ProtoLens.Field.field @"vec'symbols") frozen'symbols x)))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        34
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "language"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x)
-                                  mutable'occurrences mutable'symbols
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "relative_path"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"relativePath") y x)
-                                  mutable'occurrences mutable'symbols
-                        18
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "occurrences"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'occurrences y)
-                                loop x v mutable'symbols
-                        26
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "symbols"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append mutable'symbols y)
-                                loop x mutable'occurrences v
-                        42
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "text"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"text") y x)
-                                  mutable'occurrences mutable'symbols
-                        48
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "position_encoding"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"positionEncoding") y x)
-                                  mutable'occurrences mutable'symbols
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'occurrences mutable'symbols
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       Data.ProtoLens.Encoding.Growing.new
-              mutable'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                   Data.ProtoLens.Encoding.Growing.new
-              loop Data.ProtoLens.defMessage mutable'occurrences mutable'symbols)
-          "Document"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let
-                   _v
-                     = Lens.Family2.view (Data.ProtoLens.Field.field @"relativePath") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.ProtoLens.encodeMessage _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'occurrences") _x))
-                   ((Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                         (\ _v
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                                 ((Prelude..)
-                                    (\ bs
-                                       -> (Data.Monoid.<>)
-                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                    Data.ProtoLens.encodeMessage _v))
-                         (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'symbols") _x))
-                      ((Data.Monoid.<>)
-                         (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"text") _x
-                          in
-                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                Data.Monoid.mempty
-                            else
-                                (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
-                                  ((Prelude..)
-                                     (\ bs
-                                        -> (Data.Monoid.<>)
-                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                     Data.Text.Encoding.encodeUtf8 _v))
-                         ((Data.Monoid.<>)
-                            (let
-                               _v
-                                 = Lens.Family2.view
-                                     (Data.ProtoLens.Field.field @"positionEncoding") _x
-                             in
-                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                   Data.Monoid.mempty
-                               else
-                                   (Data.Monoid.<>)
-                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
-                                     ((Prelude..)
-                                        ((Prelude..)
-                                           Data.ProtoLens.Encoding.Bytes.putVarInt
-                                           Prelude.fromIntegral)
-                                        Prelude.fromEnum _v))
-                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
-instance Control.DeepSeq.NFData Document where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Document'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Document'language x__)
-                (Control.DeepSeq.deepseq
-                   (_Document'relativePath x__)
-                   (Control.DeepSeq.deepseq
-                      (_Document'occurrences x__)
-                      (Control.DeepSeq.deepseq
-                         (_Document'symbols x__)
-                         (Control.DeepSeq.deepseq
-                            (_Document'text x__)
-                            (Control.DeepSeq.deepseq (_Document'positionEncoding x__) ()))))))
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.metadata' @:: Lens' Index Metadata@
-         * 'Proto.Scip_Fields.maybe'metadata' @:: Lens' Index (Prelude.Maybe Metadata)@
-         * 'Proto.Scip_Fields.documents' @:: Lens' Index [Document]@
-         * 'Proto.Scip_Fields.vec'documents' @:: Lens' Index (Data.Vector.Vector Document)@
-         * 'Proto.Scip_Fields.externalSymbols' @:: Lens' Index [SymbolInformation]@
-         * 'Proto.Scip_Fields.vec'externalSymbols' @:: Lens' Index (Data.Vector.Vector SymbolInformation)@ -}
-data Index
-  = Index'_constructor {_Index'metadata :: !(Prelude.Maybe Metadata),
-                        _Index'documents :: !(Data.Vector.Vector Document),
-                        _Index'externalSymbols :: !(Data.Vector.Vector SymbolInformation),
-                        _Index'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Index where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Index "metadata" Metadata where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'metadata (\ x__ y__ -> x__ {_Index'metadata = y__}))
-        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
-instance Data.ProtoLens.Field.HasField Index "maybe'metadata" (Prelude.Maybe Metadata) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'metadata (\ x__ y__ -> x__ {_Index'metadata = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Index "documents" [Document] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'documents (\ x__ y__ -> x__ {_Index'documents = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Index "vec'documents" (Data.Vector.Vector Document) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'documents (\ x__ y__ -> x__ {_Index'documents = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Index "externalSymbols" [SymbolInformation] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'externalSymbols
-           (\ x__ y__ -> x__ {_Index'externalSymbols = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Index "vec'externalSymbols" (Data.Vector.Vector SymbolInformation) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Index'externalSymbols
-           (\ x__ y__ -> x__ {_Index'externalSymbols = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Index where
-  messageName _ = Data.Text.pack "scip.Index"
-  packedMessageDescriptor _
-    = "\n\
-      \\ENQIndex\DC2*\n\
-      \\bmetadata\CAN\SOH \SOH(\v2\SO.scip.MetadataR\bmetadata\DC2,\n\
-      \\tdocuments\CAN\STX \ETX(\v2\SO.scip.DocumentR\tdocuments\DC2B\n\
-      \\DLEexternal_symbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        metadata__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "metadata"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Metadata)
-              (Data.ProtoLens.OptionalField
-                 (Data.ProtoLens.Field.field @"maybe'metadata")) ::
-              Data.ProtoLens.FieldDescriptor Index
-        documents__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "documents"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Document)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"documents")) ::
-              Data.ProtoLens.FieldDescriptor Index
-        externalSymbols__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "external_symbols"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"externalSymbols")) ::
-              Data.ProtoLens.FieldDescriptor Index
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, metadata__field_descriptor),
-           (Data.ProtoLens.Tag 2, documents__field_descriptor),
-           (Data.ProtoLens.Tag 3, externalSymbols__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Index'_unknownFields
-        (\ x__ y__ -> x__ {_Index'_unknownFields = y__})
-  defMessage
-    = Index'_constructor
-        {_Index'metadata = Prelude.Nothing,
-         _Index'documents = Data.Vector.Generic.empty,
-         _Index'externalSymbols = Data.Vector.Generic.empty,
-         _Index'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Index
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Document
-             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation
-                -> Data.ProtoLens.Encoding.Bytes.Parser Index
-        loop x mutable'documents mutable'externalSymbols
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'documents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                               mutable'documents)
-                      frozen'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                  (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                     mutable'externalSymbols)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'documents") frozen'documents
-                              (Lens.Family2.set
-                                 (Data.ProtoLens.Field.field @"vec'externalSymbols")
-                                 frozen'externalSymbols x)))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.isolate
-                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
-                                       "metadata"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"metadata") y x)
-                                  mutable'documents mutable'externalSymbols
-                        18
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "documents"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append mutable'documents y)
-                                loop x v mutable'externalSymbols
-                        26
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "external_symbols"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'externalSymbols y)
-                                loop x mutable'documents v
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'documents mutable'externalSymbols
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'documents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                     Data.ProtoLens.Encoding.Growing.new
-              mutable'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                           Data.ProtoLens.Encoding.Growing.new
-              loop
-                Data.ProtoLens.defMessage mutable'documents
-                mutable'externalSymbols)
-          "Index"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (case
-                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'metadata") _x
-              of
-                Prelude.Nothing -> Data.Monoid.mempty
-                (Prelude.Just _v)
-                  -> (Data.Monoid.<>)
-                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                       ((Prelude..)
-                          (\ bs
-                             -> (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                          Data.ProtoLens.encodeMessage _v))
-             ((Data.Monoid.<>)
-                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                   (\ _v
-                      -> (Data.Monoid.<>)
-                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                           ((Prelude..)
-                              (\ bs
-                                 -> (Data.Monoid.<>)
-                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                              Data.ProtoLens.encodeMessage _v))
-                   (Lens.Family2.view
-                      (Data.ProtoLens.Field.field @"vec'documents") _x))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.ProtoLens.encodeMessage _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'externalSymbols") _x))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData Index where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Index'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Index'metadata x__)
-                (Control.DeepSeq.deepseq
-                   (_Index'documents x__)
-                   (Control.DeepSeq.deepseq (_Index'externalSymbols x__) ())))
-newtype Language'UnrecognizedValue
-  = Language'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data Language
-  = UnspecifiedLanguage |
-    CSharp |
-    Swift |
-    Dart |
-    Kotlin |
-    Scala |
-    Java |
-    Groovy |
-    Clojure |
-    CommonLisp |
-    Scheme |
-    Racket |
-    Lua |
-    Perl |
-    Raku |
-    Python |
-    Ruby |
-    Elixir |
-    Erlang |
-    PHP |
-    Hack |
-    Coffeescript |
-    JavaScript |
-    TypeScript |
-    Flow |
-    Vue |
-    CSS |
-    Less |
-    Sass |
-    SCSS |
-    HTML |
-    XML |
-    XSL |
-    Go |
-    C |
-    CPP |
-    Objective_C |
-    Objective_CPP |
-    Zig |
-    Ada |
-    Rust |
-    OCaml |
-    FSharp |
-    SML |
-    Haskell |
-    Agda |
-    Idris |
-    Coq |
-    Lean |
-    APL |
-    Dyalog |
-    J |
-    Matlab |
-    Wolfram |
-    R |
-    Julia |
-    Fortran |
-    Delphi |
-    Assembly |
-    COBOL |
-    ABAP |
-    SAS |
-    Razor |
-    VisualBasic |
-    ShellScript |
-    Fish |
-    Awk |
-    PowerShell |
-    Bat |
-    SQL |
-    PLSQL |
-    Prolog |
-    Ini |
-    TOML |
-    YAML |
-    JSON |
-    Jsonnet |
-    Nix |
-    Skylark |
-    Makefile |
-    Dockerfile |
-    BibTeX |
-    TeX |
-    LaTeX |
-    Markdown |
-    ReST |
-    AsciiDoc |
-    Diff |
-    Git_Config |
-    Handlebars |
-    Git_Commit |
-    Git_Rebase |
-    JavaScriptReact |
-    TypeScriptReact |
-    Solidity |
-    Apex |
-    CUDA |
-    GraphQL |
-    Pascal |
-    Protobuf |
-    Tcl |
-    Repro |
-    Thrift |
-    Verilog |
-    VHDL |
-    Svelte |
-    Slang |
-    Luau |
-    Justfile |
-    Nickel |
-    Language'Unrecognized !Language'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum Language where
-  maybeToEnum 0 = Prelude.Just UnspecifiedLanguage
-  maybeToEnum 1 = Prelude.Just CSharp
-  maybeToEnum 2 = Prelude.Just Swift
-  maybeToEnum 3 = Prelude.Just Dart
-  maybeToEnum 4 = Prelude.Just Kotlin
-  maybeToEnum 5 = Prelude.Just Scala
-  maybeToEnum 6 = Prelude.Just Java
-  maybeToEnum 7 = Prelude.Just Groovy
-  maybeToEnum 8 = Prelude.Just Clojure
-  maybeToEnum 9 = Prelude.Just CommonLisp
-  maybeToEnum 10 = Prelude.Just Scheme
-  maybeToEnum 11 = Prelude.Just Racket
-  maybeToEnum 12 = Prelude.Just Lua
-  maybeToEnum 13 = Prelude.Just Perl
-  maybeToEnum 14 = Prelude.Just Raku
-  maybeToEnum 15 = Prelude.Just Python
-  maybeToEnum 16 = Prelude.Just Ruby
-  maybeToEnum 17 = Prelude.Just Elixir
-  maybeToEnum 18 = Prelude.Just Erlang
-  maybeToEnum 19 = Prelude.Just PHP
-  maybeToEnum 20 = Prelude.Just Hack
-  maybeToEnum 21 = Prelude.Just Coffeescript
-  maybeToEnum 22 = Prelude.Just JavaScript
-  maybeToEnum 23 = Prelude.Just TypeScript
-  maybeToEnum 24 = Prelude.Just Flow
-  maybeToEnum 25 = Prelude.Just Vue
-  maybeToEnum 26 = Prelude.Just CSS
-  maybeToEnum 27 = Prelude.Just Less
-  maybeToEnum 28 = Prelude.Just Sass
-  maybeToEnum 29 = Prelude.Just SCSS
-  maybeToEnum 30 = Prelude.Just HTML
-  maybeToEnum 31 = Prelude.Just XML
-  maybeToEnum 32 = Prelude.Just XSL
-  maybeToEnum 33 = Prelude.Just Go
-  maybeToEnum 34 = Prelude.Just C
-  maybeToEnum 35 = Prelude.Just CPP
-  maybeToEnum 36 = Prelude.Just Objective_C
-  maybeToEnum 37 = Prelude.Just Objective_CPP
-  maybeToEnum 38 = Prelude.Just Zig
-  maybeToEnum 39 = Prelude.Just Ada
-  maybeToEnum 40 = Prelude.Just Rust
-  maybeToEnum 41 = Prelude.Just OCaml
-  maybeToEnum 42 = Prelude.Just FSharp
-  maybeToEnum 43 = Prelude.Just SML
-  maybeToEnum 44 = Prelude.Just Haskell
-  maybeToEnum 45 = Prelude.Just Agda
-  maybeToEnum 46 = Prelude.Just Idris
-  maybeToEnum 47 = Prelude.Just Coq
-  maybeToEnum 48 = Prelude.Just Lean
-  maybeToEnum 49 = Prelude.Just APL
-  maybeToEnum 50 = Prelude.Just Dyalog
-  maybeToEnum 51 = Prelude.Just J
-  maybeToEnum 52 = Prelude.Just Matlab
-  maybeToEnum 53 = Prelude.Just Wolfram
-  maybeToEnum 54 = Prelude.Just R
-  maybeToEnum 55 = Prelude.Just Julia
-  maybeToEnum 56 = Prelude.Just Fortran
-  maybeToEnum 57 = Prelude.Just Delphi
-  maybeToEnum 58 = Prelude.Just Assembly
-  maybeToEnum 59 = Prelude.Just COBOL
-  maybeToEnum 60 = Prelude.Just ABAP
-  maybeToEnum 61 = Prelude.Just SAS
-  maybeToEnum 62 = Prelude.Just Razor
-  maybeToEnum 63 = Prelude.Just VisualBasic
-  maybeToEnum 64 = Prelude.Just ShellScript
-  maybeToEnum 65 = Prelude.Just Fish
-  maybeToEnum 66 = Prelude.Just Awk
-  maybeToEnum 67 = Prelude.Just PowerShell
-  maybeToEnum 68 = Prelude.Just Bat
-  maybeToEnum 69 = Prelude.Just SQL
-  maybeToEnum 70 = Prelude.Just PLSQL
-  maybeToEnum 71 = Prelude.Just Prolog
-  maybeToEnum 72 = Prelude.Just Ini
-  maybeToEnum 73 = Prelude.Just TOML
-  maybeToEnum 74 = Prelude.Just YAML
-  maybeToEnum 75 = Prelude.Just JSON
-  maybeToEnum 76 = Prelude.Just Jsonnet
-  maybeToEnum 77 = Prelude.Just Nix
-  maybeToEnum 78 = Prelude.Just Skylark
-  maybeToEnum 79 = Prelude.Just Makefile
-  maybeToEnum 80 = Prelude.Just Dockerfile
-  maybeToEnum 81 = Prelude.Just BibTeX
-  maybeToEnum 82 = Prelude.Just TeX
-  maybeToEnum 83 = Prelude.Just LaTeX
-  maybeToEnum 84 = Prelude.Just Markdown
-  maybeToEnum 85 = Prelude.Just ReST
-  maybeToEnum 86 = Prelude.Just AsciiDoc
-  maybeToEnum 88 = Prelude.Just Diff
-  maybeToEnum 89 = Prelude.Just Git_Config
-  maybeToEnum 90 = Prelude.Just Handlebars
-  maybeToEnum 91 = Prelude.Just Git_Commit
-  maybeToEnum 92 = Prelude.Just Git_Rebase
-  maybeToEnum 93 = Prelude.Just JavaScriptReact
-  maybeToEnum 94 = Prelude.Just TypeScriptReact
-  maybeToEnum 95 = Prelude.Just Solidity
-  maybeToEnum 96 = Prelude.Just Apex
-  maybeToEnum 97 = Prelude.Just CUDA
-  maybeToEnum 98 = Prelude.Just GraphQL
-  maybeToEnum 99 = Prelude.Just Pascal
-  maybeToEnum 100 = Prelude.Just Protobuf
-  maybeToEnum 101 = Prelude.Just Tcl
-  maybeToEnum 102 = Prelude.Just Repro
-  maybeToEnum 103 = Prelude.Just Thrift
-  maybeToEnum 104 = Prelude.Just Verilog
-  maybeToEnum 105 = Prelude.Just VHDL
-  maybeToEnum 106 = Prelude.Just Svelte
-  maybeToEnum 107 = Prelude.Just Slang
-  maybeToEnum 108 = Prelude.Just Luau
-  maybeToEnum 109 = Prelude.Just Justfile
-  maybeToEnum 110 = Prelude.Just Nickel
-  maybeToEnum k
-    = Prelude.Just
-        (Language'Unrecognized
-           (Language'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedLanguage = "UnspecifiedLanguage"
-  showEnum ABAP = "ABAP"
-  showEnum Apex = "Apex"
-  showEnum APL = "APL"
-  showEnum Ada = "Ada"
-  showEnum Agda = "Agda"
-  showEnum AsciiDoc = "AsciiDoc"
-  showEnum Assembly = "Assembly"
-  showEnum Awk = "Awk"
-  showEnum Bat = "Bat"
-  showEnum BibTeX = "BibTeX"
-  showEnum C = "C"
-  showEnum COBOL = "COBOL"
-  showEnum CPP = "CPP"
-  showEnum CSS = "CSS"
-  showEnum CSharp = "CSharp"
-  showEnum Clojure = "Clojure"
-  showEnum Coffeescript = "Coffeescript"
-  showEnum CommonLisp = "CommonLisp"
-  showEnum Coq = "Coq"
-  showEnum CUDA = "CUDA"
-  showEnum Dart = "Dart"
-  showEnum Delphi = "Delphi"
-  showEnum Diff = "Diff"
-  showEnum Dockerfile = "Dockerfile"
-  showEnum Dyalog = "Dyalog"
-  showEnum Elixir = "Elixir"
-  showEnum Erlang = "Erlang"
-  showEnum FSharp = "FSharp"
-  showEnum Fish = "Fish"
-  showEnum Flow = "Flow"
-  showEnum Fortran = "Fortran"
-  showEnum Git_Commit = "Git_Commit"
-  showEnum Git_Config = "Git_Config"
-  showEnum Git_Rebase = "Git_Rebase"
-  showEnum Go = "Go"
-  showEnum GraphQL = "GraphQL"
-  showEnum Groovy = "Groovy"
-  showEnum HTML = "HTML"
-  showEnum Hack = "Hack"
-  showEnum Handlebars = "Handlebars"
-  showEnum Haskell = "Haskell"
-  showEnum Idris = "Idris"
-  showEnum Ini = "Ini"
-  showEnum J = "J"
-  showEnum JSON = "JSON"
-  showEnum Java = "Java"
-  showEnum JavaScript = "JavaScript"
-  showEnum JavaScriptReact = "JavaScriptReact"
-  showEnum Jsonnet = "Jsonnet"
-  showEnum Julia = "Julia"
-  showEnum Justfile = "Justfile"
-  showEnum Kotlin = "Kotlin"
-  showEnum LaTeX = "LaTeX"
-  showEnum Lean = "Lean"
-  showEnum Less = "Less"
-  showEnum Lua = "Lua"
-  showEnum Luau = "Luau"
-  showEnum Makefile = "Makefile"
-  showEnum Markdown = "Markdown"
-  showEnum Matlab = "Matlab"
-  showEnum Nickel = "Nickel"
-  showEnum Nix = "Nix"
-  showEnum OCaml = "OCaml"
-  showEnum Objective_C = "Objective_C"
-  showEnum Objective_CPP = "Objective_CPP"
-  showEnum Pascal = "Pascal"
-  showEnum PHP = "PHP"
-  showEnum PLSQL = "PLSQL"
-  showEnum Perl = "Perl"
-  showEnum PowerShell = "PowerShell"
-  showEnum Prolog = "Prolog"
-  showEnum Protobuf = "Protobuf"
-  showEnum Python = "Python"
-  showEnum R = "R"
-  showEnum Racket = "Racket"
-  showEnum Raku = "Raku"
-  showEnum Razor = "Razor"
-  showEnum Repro = "Repro"
-  showEnum ReST = "ReST"
-  showEnum Ruby = "Ruby"
-  showEnum Rust = "Rust"
-  showEnum SAS = "SAS"
-  showEnum SCSS = "SCSS"
-  showEnum SML = "SML"
-  showEnum SQL = "SQL"
-  showEnum Sass = "Sass"
-  showEnum Scala = "Scala"
-  showEnum Scheme = "Scheme"
-  showEnum ShellScript = "ShellScript"
-  showEnum Skylark = "Skylark"
-  showEnum Slang = "Slang"
-  showEnum Solidity = "Solidity"
-  showEnum Svelte = "Svelte"
-  showEnum Swift = "Swift"
-  showEnum Tcl = "Tcl"
-  showEnum TOML = "TOML"
-  showEnum TeX = "TeX"
-  showEnum Thrift = "Thrift"
-  showEnum TypeScript = "TypeScript"
-  showEnum TypeScriptReact = "TypeScriptReact"
-  showEnum Verilog = "Verilog"
-  showEnum VHDL = "VHDL"
-  showEnum VisualBasic = "VisualBasic"
-  showEnum Vue = "Vue"
-  showEnum Wolfram = "Wolfram"
-  showEnum XML = "XML"
-  showEnum XSL = "XSL"
-  showEnum YAML = "YAML"
-  showEnum Zig = "Zig"
-  showEnum (Language'Unrecognized (Language'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedLanguage"
-    = Prelude.Just UnspecifiedLanguage
-    | (Prelude.==) k "ABAP" = Prelude.Just ABAP
-    | (Prelude.==) k "Apex" = Prelude.Just Apex
-    | (Prelude.==) k "APL" = Prelude.Just APL
-    | (Prelude.==) k "Ada" = Prelude.Just Ada
-    | (Prelude.==) k "Agda" = Prelude.Just Agda
-    | (Prelude.==) k "AsciiDoc" = Prelude.Just AsciiDoc
-    | (Prelude.==) k "Assembly" = Prelude.Just Assembly
-    | (Prelude.==) k "Awk" = Prelude.Just Awk
-    | (Prelude.==) k "Bat" = Prelude.Just Bat
-    | (Prelude.==) k "BibTeX" = Prelude.Just BibTeX
-    | (Prelude.==) k "C" = Prelude.Just C
-    | (Prelude.==) k "COBOL" = Prelude.Just COBOL
-    | (Prelude.==) k "CPP" = Prelude.Just CPP
-    | (Prelude.==) k "CSS" = Prelude.Just CSS
-    | (Prelude.==) k "CSharp" = Prelude.Just CSharp
-    | (Prelude.==) k "Clojure" = Prelude.Just Clojure
-    | (Prelude.==) k "Coffeescript" = Prelude.Just Coffeescript
-    | (Prelude.==) k "CommonLisp" = Prelude.Just CommonLisp
-    | (Prelude.==) k "Coq" = Prelude.Just Coq
-    | (Prelude.==) k "CUDA" = Prelude.Just CUDA
-    | (Prelude.==) k "Dart" = Prelude.Just Dart
-    | (Prelude.==) k "Delphi" = Prelude.Just Delphi
-    | (Prelude.==) k "Diff" = Prelude.Just Diff
-    | (Prelude.==) k "Dockerfile" = Prelude.Just Dockerfile
-    | (Prelude.==) k "Dyalog" = Prelude.Just Dyalog
-    | (Prelude.==) k "Elixir" = Prelude.Just Elixir
-    | (Prelude.==) k "Erlang" = Prelude.Just Erlang
-    | (Prelude.==) k "FSharp" = Prelude.Just FSharp
-    | (Prelude.==) k "Fish" = Prelude.Just Fish
-    | (Prelude.==) k "Flow" = Prelude.Just Flow
-    | (Prelude.==) k "Fortran" = Prelude.Just Fortran
-    | (Prelude.==) k "Git_Commit" = Prelude.Just Git_Commit
-    | (Prelude.==) k "Git_Config" = Prelude.Just Git_Config
-    | (Prelude.==) k "Git_Rebase" = Prelude.Just Git_Rebase
-    | (Prelude.==) k "Go" = Prelude.Just Go
-    | (Prelude.==) k "GraphQL" = Prelude.Just GraphQL
-    | (Prelude.==) k "Groovy" = Prelude.Just Groovy
-    | (Prelude.==) k "HTML" = Prelude.Just HTML
-    | (Prelude.==) k "Hack" = Prelude.Just Hack
-    | (Prelude.==) k "Handlebars" = Prelude.Just Handlebars
-    | (Prelude.==) k "Haskell" = Prelude.Just Haskell
-    | (Prelude.==) k "Idris" = Prelude.Just Idris
-    | (Prelude.==) k "Ini" = Prelude.Just Ini
-    | (Prelude.==) k "J" = Prelude.Just J
-    | (Prelude.==) k "JSON" = Prelude.Just JSON
-    | (Prelude.==) k "Java" = Prelude.Just Java
-    | (Prelude.==) k "JavaScript" = Prelude.Just JavaScript
-    | (Prelude.==) k "JavaScriptReact" = Prelude.Just JavaScriptReact
-    | (Prelude.==) k "Jsonnet" = Prelude.Just Jsonnet
-    | (Prelude.==) k "Julia" = Prelude.Just Julia
-    | (Prelude.==) k "Justfile" = Prelude.Just Justfile
-    | (Prelude.==) k "Kotlin" = Prelude.Just Kotlin
-    | (Prelude.==) k "LaTeX" = Prelude.Just LaTeX
-    | (Prelude.==) k "Lean" = Prelude.Just Lean
-    | (Prelude.==) k "Less" = Prelude.Just Less
-    | (Prelude.==) k "Lua" = Prelude.Just Lua
-    | (Prelude.==) k "Luau" = Prelude.Just Luau
-    | (Prelude.==) k "Makefile" = Prelude.Just Makefile
-    | (Prelude.==) k "Markdown" = Prelude.Just Markdown
-    | (Prelude.==) k "Matlab" = Prelude.Just Matlab
-    | (Prelude.==) k "Nickel" = Prelude.Just Nickel
-    | (Prelude.==) k "Nix" = Prelude.Just Nix
-    | (Prelude.==) k "OCaml" = Prelude.Just OCaml
-    | (Prelude.==) k "Objective_C" = Prelude.Just Objective_C
-    | (Prelude.==) k "Objective_CPP" = Prelude.Just Objective_CPP
-    | (Prelude.==) k "Pascal" = Prelude.Just Pascal
-    | (Prelude.==) k "PHP" = Prelude.Just PHP
-    | (Prelude.==) k "PLSQL" = Prelude.Just PLSQL
-    | (Prelude.==) k "Perl" = Prelude.Just Perl
-    | (Prelude.==) k "PowerShell" = Prelude.Just PowerShell
-    | (Prelude.==) k "Prolog" = Prelude.Just Prolog
-    | (Prelude.==) k "Protobuf" = Prelude.Just Protobuf
-    | (Prelude.==) k "Python" = Prelude.Just Python
-    | (Prelude.==) k "R" = Prelude.Just R
-    | (Prelude.==) k "Racket" = Prelude.Just Racket
-    | (Prelude.==) k "Raku" = Prelude.Just Raku
-    | (Prelude.==) k "Razor" = Prelude.Just Razor
-    | (Prelude.==) k "Repro" = Prelude.Just Repro
-    | (Prelude.==) k "ReST" = Prelude.Just ReST
-    | (Prelude.==) k "Ruby" = Prelude.Just Ruby
-    | (Prelude.==) k "Rust" = Prelude.Just Rust
-    | (Prelude.==) k "SAS" = Prelude.Just SAS
-    | (Prelude.==) k "SCSS" = Prelude.Just SCSS
-    | (Prelude.==) k "SML" = Prelude.Just SML
-    | (Prelude.==) k "SQL" = Prelude.Just SQL
-    | (Prelude.==) k "Sass" = Prelude.Just Sass
-    | (Prelude.==) k "Scala" = Prelude.Just Scala
-    | (Prelude.==) k "Scheme" = Prelude.Just Scheme
-    | (Prelude.==) k "ShellScript" = Prelude.Just ShellScript
-    | (Prelude.==) k "Skylark" = Prelude.Just Skylark
-    | (Prelude.==) k "Slang" = Prelude.Just Slang
-    | (Prelude.==) k "Solidity" = Prelude.Just Solidity
-    | (Prelude.==) k "Svelte" = Prelude.Just Svelte
-    | (Prelude.==) k "Swift" = Prelude.Just Swift
-    | (Prelude.==) k "Tcl" = Prelude.Just Tcl
-    | (Prelude.==) k "TOML" = Prelude.Just TOML
-    | (Prelude.==) k "TeX" = Prelude.Just TeX
-    | (Prelude.==) k "Thrift" = Prelude.Just Thrift
-    | (Prelude.==) k "TypeScript" = Prelude.Just TypeScript
-    | (Prelude.==) k "TypeScriptReact" = Prelude.Just TypeScriptReact
-    | (Prelude.==) k "Verilog" = Prelude.Just Verilog
-    | (Prelude.==) k "VHDL" = Prelude.Just VHDL
-    | (Prelude.==) k "VisualBasic" = Prelude.Just VisualBasic
-    | (Prelude.==) k "Vue" = Prelude.Just Vue
-    | (Prelude.==) k "Wolfram" = Prelude.Just Wolfram
-    | (Prelude.==) k "XML" = Prelude.Just XML
-    | (Prelude.==) k "XSL" = Prelude.Just XSL
-    | (Prelude.==) k "YAML" = Prelude.Just YAML
-    | (Prelude.==) k "Zig" = Prelude.Just Zig
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded Language where
-  minBound = UnspecifiedLanguage
-  maxBound = Nickel
-instance Prelude.Enum Language where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum Language: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedLanguage = 0
-  fromEnum CSharp = 1
-  fromEnum Swift = 2
-  fromEnum Dart = 3
-  fromEnum Kotlin = 4
-  fromEnum Scala = 5
-  fromEnum Java = 6
-  fromEnum Groovy = 7
-  fromEnum Clojure = 8
-  fromEnum CommonLisp = 9
-  fromEnum Scheme = 10
-  fromEnum Racket = 11
-  fromEnum Lua = 12
-  fromEnum Perl = 13
-  fromEnum Raku = 14
-  fromEnum Python = 15
-  fromEnum Ruby = 16
-  fromEnum Elixir = 17
-  fromEnum Erlang = 18
-  fromEnum PHP = 19
-  fromEnum Hack = 20
-  fromEnum Coffeescript = 21
-  fromEnum JavaScript = 22
-  fromEnum TypeScript = 23
-  fromEnum Flow = 24
-  fromEnum Vue = 25
-  fromEnum CSS = 26
-  fromEnum Less = 27
-  fromEnum Sass = 28
-  fromEnum SCSS = 29
-  fromEnum HTML = 30
-  fromEnum XML = 31
-  fromEnum XSL = 32
-  fromEnum Go = 33
-  fromEnum C = 34
-  fromEnum CPP = 35
-  fromEnum Objective_C = 36
-  fromEnum Objective_CPP = 37
-  fromEnum Zig = 38
-  fromEnum Ada = 39
-  fromEnum Rust = 40
-  fromEnum OCaml = 41
-  fromEnum FSharp = 42
-  fromEnum SML = 43
-  fromEnum Haskell = 44
-  fromEnum Agda = 45
-  fromEnum Idris = 46
-  fromEnum Coq = 47
-  fromEnum Lean = 48
-  fromEnum APL = 49
-  fromEnum Dyalog = 50
-  fromEnum J = 51
-  fromEnum Matlab = 52
-  fromEnum Wolfram = 53
-  fromEnum R = 54
-  fromEnum Julia = 55
-  fromEnum Fortran = 56
-  fromEnum Delphi = 57
-  fromEnum Assembly = 58
-  fromEnum COBOL = 59
-  fromEnum ABAP = 60
-  fromEnum SAS = 61
-  fromEnum Razor = 62
-  fromEnum VisualBasic = 63
-  fromEnum ShellScript = 64
-  fromEnum Fish = 65
-  fromEnum Awk = 66
-  fromEnum PowerShell = 67
-  fromEnum Bat = 68
-  fromEnum SQL = 69
-  fromEnum PLSQL = 70
-  fromEnum Prolog = 71
-  fromEnum Ini = 72
-  fromEnum TOML = 73
-  fromEnum YAML = 74
-  fromEnum JSON = 75
-  fromEnum Jsonnet = 76
-  fromEnum Nix = 77
-  fromEnum Skylark = 78
-  fromEnum Makefile = 79
-  fromEnum Dockerfile = 80
-  fromEnum BibTeX = 81
-  fromEnum TeX = 82
-  fromEnum LaTeX = 83
-  fromEnum Markdown = 84
-  fromEnum ReST = 85
-  fromEnum AsciiDoc = 86
-  fromEnum Diff = 88
-  fromEnum Git_Config = 89
-  fromEnum Handlebars = 90
-  fromEnum Git_Commit = 91
-  fromEnum Git_Rebase = 92
-  fromEnum JavaScriptReact = 93
-  fromEnum TypeScriptReact = 94
-  fromEnum Solidity = 95
-  fromEnum Apex = 96
-  fromEnum CUDA = 97
-  fromEnum GraphQL = 98
-  fromEnum Pascal = 99
-  fromEnum Protobuf = 100
-  fromEnum Tcl = 101
-  fromEnum Repro = 102
-  fromEnum Thrift = 103
-  fromEnum Verilog = 104
-  fromEnum VHDL = 105
-  fromEnum Svelte = 106
-  fromEnum Slang = 107
-  fromEnum Luau = 108
-  fromEnum Justfile = 109
-  fromEnum Nickel = 110
-  fromEnum (Language'Unrecognized (Language'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ Nickel
-    = Prelude.error
-        "Language.succ: bad argument Nickel. This value would be out of bounds."
-  succ UnspecifiedLanguage = CSharp
-  succ CSharp = Swift
-  succ Swift = Dart
-  succ Dart = Kotlin
-  succ Kotlin = Scala
-  succ Scala = Java
-  succ Java = Groovy
-  succ Groovy = Clojure
-  succ Clojure = CommonLisp
-  succ CommonLisp = Scheme
-  succ Scheme = Racket
-  succ Racket = Lua
-  succ Lua = Perl
-  succ Perl = Raku
-  succ Raku = Python
-  succ Python = Ruby
-  succ Ruby = Elixir
-  succ Elixir = Erlang
-  succ Erlang = PHP
-  succ PHP = Hack
-  succ Hack = Coffeescript
-  succ Coffeescript = JavaScript
-  succ JavaScript = TypeScript
-  succ TypeScript = Flow
-  succ Flow = Vue
-  succ Vue = CSS
-  succ CSS = Less
-  succ Less = Sass
-  succ Sass = SCSS
-  succ SCSS = HTML
-  succ HTML = XML
-  succ XML = XSL
-  succ XSL = Go
-  succ Go = C
-  succ C = CPP
-  succ CPP = Objective_C
-  succ Objective_C = Objective_CPP
-  succ Objective_CPP = Zig
-  succ Zig = Ada
-  succ Ada = Rust
-  succ Rust = OCaml
-  succ OCaml = FSharp
-  succ FSharp = SML
-  succ SML = Haskell
-  succ Haskell = Agda
-  succ Agda = Idris
-  succ Idris = Coq
-  succ Coq = Lean
-  succ Lean = APL
-  succ APL = Dyalog
-  succ Dyalog = J
-  succ J = Matlab
-  succ Matlab = Wolfram
-  succ Wolfram = R
-  succ R = Julia
-  succ Julia = Fortran
-  succ Fortran = Delphi
-  succ Delphi = Assembly
-  succ Assembly = COBOL
-  succ COBOL = ABAP
-  succ ABAP = SAS
-  succ SAS = Razor
-  succ Razor = VisualBasic
-  succ VisualBasic = ShellScript
-  succ ShellScript = Fish
-  succ Fish = Awk
-  succ Awk = PowerShell
-  succ PowerShell = Bat
-  succ Bat = SQL
-  succ SQL = PLSQL
-  succ PLSQL = Prolog
-  succ Prolog = Ini
-  succ Ini = TOML
-  succ TOML = YAML
-  succ YAML = JSON
-  succ JSON = Jsonnet
-  succ Jsonnet = Nix
-  succ Nix = Skylark
-  succ Skylark = Makefile
-  succ Makefile = Dockerfile
-  succ Dockerfile = BibTeX
-  succ BibTeX = TeX
-  succ TeX = LaTeX
-  succ LaTeX = Markdown
-  succ Markdown = ReST
-  succ ReST = AsciiDoc
-  succ AsciiDoc = Diff
-  succ Diff = Git_Config
-  succ Git_Config = Handlebars
-  succ Handlebars = Git_Commit
-  succ Git_Commit = Git_Rebase
-  succ Git_Rebase = JavaScriptReact
-  succ JavaScriptReact = TypeScriptReact
-  succ TypeScriptReact = Solidity
-  succ Solidity = Apex
-  succ Apex = CUDA
-  succ CUDA = GraphQL
-  succ GraphQL = Pascal
-  succ Pascal = Protobuf
-  succ Protobuf = Tcl
-  succ Tcl = Repro
-  succ Repro = Thrift
-  succ Thrift = Verilog
-  succ Verilog = VHDL
-  succ VHDL = Svelte
-  succ Svelte = Slang
-  succ Slang = Luau
-  succ Luau = Justfile
-  succ Justfile = Nickel
-  succ (Language'Unrecognized _)
-    = Prelude.error "Language.succ: bad argument: unrecognized value"
-  pred UnspecifiedLanguage
-    = Prelude.error
-        "Language.pred: bad argument UnspecifiedLanguage. This value would be out of bounds."
-  pred CSharp = UnspecifiedLanguage
-  pred Swift = CSharp
-  pred Dart = Swift
-  pred Kotlin = Dart
-  pred Scala = Kotlin
-  pred Java = Scala
-  pred Groovy = Java
-  pred Clojure = Groovy
-  pred CommonLisp = Clojure
-  pred Scheme = CommonLisp
-  pred Racket = Scheme
-  pred Lua = Racket
-  pred Perl = Lua
-  pred Raku = Perl
-  pred Python = Raku
-  pred Ruby = Python
-  pred Elixir = Ruby
-  pred Erlang = Elixir
-  pred PHP = Erlang
-  pred Hack = PHP
-  pred Coffeescript = Hack
-  pred JavaScript = Coffeescript
-  pred TypeScript = JavaScript
-  pred Flow = TypeScript
-  pred Vue = Flow
-  pred CSS = Vue
-  pred Less = CSS
-  pred Sass = Less
-  pred SCSS = Sass
-  pred HTML = SCSS
-  pred XML = HTML
-  pred XSL = XML
-  pred Go = XSL
-  pred C = Go
-  pred CPP = C
-  pred Objective_C = CPP
-  pred Objective_CPP = Objective_C
-  pred Zig = Objective_CPP
-  pred Ada = Zig
-  pred Rust = Ada
-  pred OCaml = Rust
-  pred FSharp = OCaml
-  pred SML = FSharp
-  pred Haskell = SML
-  pred Agda = Haskell
-  pred Idris = Agda
-  pred Coq = Idris
-  pred Lean = Coq
-  pred APL = Lean
-  pred Dyalog = APL
-  pred J = Dyalog
-  pred Matlab = J
-  pred Wolfram = Matlab
-  pred R = Wolfram
-  pred Julia = R
-  pred Fortran = Julia
-  pred Delphi = Fortran
-  pred Assembly = Delphi
-  pred COBOL = Assembly
-  pred ABAP = COBOL
-  pred SAS = ABAP
-  pred Razor = SAS
-  pred VisualBasic = Razor
-  pred ShellScript = VisualBasic
-  pred Fish = ShellScript
-  pred Awk = Fish
-  pred PowerShell = Awk
-  pred Bat = PowerShell
-  pred SQL = Bat
-  pred PLSQL = SQL
-  pred Prolog = PLSQL
-  pred Ini = Prolog
-  pred TOML = Ini
-  pred YAML = TOML
-  pred JSON = YAML
-  pred Jsonnet = JSON
-  pred Nix = Jsonnet
-  pred Skylark = Nix
-  pred Makefile = Skylark
-  pred Dockerfile = Makefile
-  pred BibTeX = Dockerfile
-  pred TeX = BibTeX
-  pred LaTeX = TeX
-  pred Markdown = LaTeX
-  pred ReST = Markdown
-  pred AsciiDoc = ReST
-  pred Diff = AsciiDoc
-  pred Git_Config = Diff
-  pred Handlebars = Git_Config
-  pred Git_Commit = Handlebars
-  pred Git_Rebase = Git_Commit
-  pred JavaScriptReact = Git_Rebase
-  pred TypeScriptReact = JavaScriptReact
-  pred Solidity = TypeScriptReact
-  pred Apex = Solidity
-  pred CUDA = Apex
-  pred GraphQL = CUDA
-  pred Pascal = GraphQL
-  pred Protobuf = Pascal
-  pred Tcl = Protobuf
-  pred Repro = Tcl
-  pred Thrift = Repro
-  pred Verilog = Thrift
-  pred VHDL = Verilog
-  pred Svelte = VHDL
-  pred Slang = Svelte
-  pred Luau = Slang
-  pred Justfile = Luau
-  pred Nickel = Justfile
-  pred (Language'Unrecognized _)
-    = Prelude.error "Language.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault Language where
-  fieldDefault = UnspecifiedLanguage
-instance Control.DeepSeq.NFData Language where
-  rnf x__ = Prelude.seq x__ ()
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.version' @:: Lens' Metadata ProtocolVersion@
-         * 'Proto.Scip_Fields.toolInfo' @:: Lens' Metadata ToolInfo@
-         * 'Proto.Scip_Fields.maybe'toolInfo' @:: Lens' Metadata (Prelude.Maybe ToolInfo)@
-         * 'Proto.Scip_Fields.projectRoot' @:: Lens' Metadata Data.Text.Text@
-         * 'Proto.Scip_Fields.textDocumentEncoding' @:: Lens' Metadata TextEncoding@ -}
-data Metadata
-  = Metadata'_constructor {_Metadata'version :: !ProtocolVersion,
-                           _Metadata'toolInfo :: !(Prelude.Maybe ToolInfo),
-                           _Metadata'projectRoot :: !Data.Text.Text,
-                           _Metadata'textDocumentEncoding :: !TextEncoding,
-                           _Metadata'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Metadata where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Metadata "version" ProtocolVersion where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Metadata'version (\ x__ y__ -> x__ {_Metadata'version = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Metadata "toolInfo" ToolInfo where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Metadata'toolInfo (\ x__ y__ -> x__ {_Metadata'toolInfo = y__}))
-        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
-instance Data.ProtoLens.Field.HasField Metadata "maybe'toolInfo" (Prelude.Maybe ToolInfo) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Metadata'toolInfo (\ x__ y__ -> x__ {_Metadata'toolInfo = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Metadata "projectRoot" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Metadata'projectRoot
-           (\ x__ y__ -> x__ {_Metadata'projectRoot = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Metadata "textDocumentEncoding" TextEncoding where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Metadata'textDocumentEncoding
-           (\ x__ y__ -> x__ {_Metadata'textDocumentEncoding = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Metadata where
-  messageName _ = Data.Text.pack "scip.Metadata"
-  packedMessageDescriptor _
-    = "\n\
-      \\bMetadata\DC2/\n\
-      \\aversion\CAN\SOH \SOH(\SO2\NAK.scip.ProtocolVersionR\aversion\DC2+\n\
-      \\ttool_info\CAN\STX \SOH(\v2\SO.scip.ToolInfoR\btoolInfo\DC2!\n\
-      \\fproject_root\CAN\ETX \SOH(\tR\vprojectRoot\DC2H\n\
-      \\SYNtext_document_encoding\CAN\EOT \SOH(\SO2\DC2.scip.TextEncodingR\DC4textDocumentEncoding"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        version__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "version"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor ProtocolVersion)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
-              Data.ProtoLens.FieldDescriptor Metadata
-        toolInfo__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "tool_info"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor ToolInfo)
-              (Data.ProtoLens.OptionalField
-                 (Data.ProtoLens.Field.field @"maybe'toolInfo")) ::
-              Data.ProtoLens.FieldDescriptor Metadata
-        projectRoot__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "project_root"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"projectRoot")) ::
-              Data.ProtoLens.FieldDescriptor Metadata
-        textDocumentEncoding__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "text_document_encoding"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor TextEncoding)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"textDocumentEncoding")) ::
-              Data.ProtoLens.FieldDescriptor Metadata
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, version__field_descriptor),
-           (Data.ProtoLens.Tag 2, toolInfo__field_descriptor),
-           (Data.ProtoLens.Tag 3, projectRoot__field_descriptor),
-           (Data.ProtoLens.Tag 4, textDocumentEncoding__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Metadata'_unknownFields
-        (\ x__ y__ -> x__ {_Metadata'_unknownFields = y__})
-  defMessage
-    = Metadata'_constructor
-        {_Metadata'version = Data.ProtoLens.fieldDefault,
-         _Metadata'toolInfo = Prelude.Nothing,
-         _Metadata'projectRoot = Data.ProtoLens.fieldDefault,
-         _Metadata'textDocumentEncoding = Data.ProtoLens.fieldDefault,
-         _Metadata'_unknownFields = []}
-  parseMessage
-    = let
-        loop :: Metadata -> Data.ProtoLens.Encoding.Bytes.Parser Metadata
-        loop x
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "version"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.isolate
-                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
-                                       "tool_info"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"toolInfo") y x)
-                        26
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "project_root"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"projectRoot") y x)
-                        32
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "text_document_encoding"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"textDocumentEncoding") y x)
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do loop Data.ProtoLens.defMessage) "Metadata"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
-                      ((Prelude..)
-                         ((Prelude..)
-                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                         Prelude.fromEnum _v))
-             ((Data.Monoid.<>)
-                (case
-                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'toolInfo") _x
-                 of
-                   Prelude.Nothing -> Data.Monoid.mempty
-                   (Prelude.Just _v)
-                     -> (Data.Monoid.<>)
-                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                          ((Prelude..)
-                             (\ bs
-                                -> (Data.Monoid.<>)
-                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                             Data.ProtoLens.encodeMessage _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v
-                        = Lens.Family2.view (Data.ProtoLens.Field.field @"projectRoot") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                            ((Prelude..)
-                               (\ bs
-                                  -> (Data.Monoid.<>)
-                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                               Data.Text.Encoding.encodeUtf8 _v))
-                   ((Data.Monoid.<>)
-                      (let
-                         _v
-                           = Lens.Family2.view
-                               (Data.ProtoLens.Field.field @"textDocumentEncoding") _x
-                       in
-                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                             Data.Monoid.mempty
-                         else
-                             (Data.Monoid.<>)
-                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
-                               ((Prelude..)
-                                  ((Prelude..)
-                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                                  Prelude.fromEnum _v))
-                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
-instance Control.DeepSeq.NFData Metadata where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Metadata'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Metadata'version x__)
-                (Control.DeepSeq.deepseq
-                   (_Metadata'toolInfo x__)
-                   (Control.DeepSeq.deepseq
-                      (_Metadata'projectRoot x__)
-                      (Control.DeepSeq.deepseq
-                         (_Metadata'textDocumentEncoding x__) ()))))
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.range' @:: Lens' Occurrence [Data.Int.Int32]@
-         * 'Proto.Scip_Fields.vec'range' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@
-         * 'Proto.Scip_Fields.symbol' @:: Lens' Occurrence Data.Text.Text@
-         * 'Proto.Scip_Fields.symbolRoles' @:: Lens' Occurrence Data.Int.Int32@
-         * 'Proto.Scip_Fields.overrideDocumentation' @:: Lens' Occurrence [Data.Text.Text]@
-         * 'Proto.Scip_Fields.vec'overrideDocumentation' @:: Lens' Occurrence (Data.Vector.Vector Data.Text.Text)@
-         * 'Proto.Scip_Fields.syntaxKind' @:: Lens' Occurrence SyntaxKind@
-         * 'Proto.Scip_Fields.diagnostics' @:: Lens' Occurrence [Diagnostic]@
-         * 'Proto.Scip_Fields.vec'diagnostics' @:: Lens' Occurrence (Data.Vector.Vector Diagnostic)@
-         * 'Proto.Scip_Fields.enclosingRange' @:: Lens' Occurrence [Data.Int.Int32]@
-         * 'Proto.Scip_Fields.vec'enclosingRange' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@ -}
-data Occurrence
-  = Occurrence'_constructor {_Occurrence'range :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),
-                             _Occurrence'symbol :: !Data.Text.Text,
-                             _Occurrence'symbolRoles :: !Data.Int.Int32,
-                             _Occurrence'overrideDocumentation :: !(Data.Vector.Vector Data.Text.Text),
-                             _Occurrence'syntaxKind :: !SyntaxKind,
-                             _Occurrence'diagnostics :: !(Data.Vector.Vector Diagnostic),
-                             _Occurrence'enclosingRange :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),
-                             _Occurrence'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Occurrence where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Occurrence "range" [Data.Int.Int32] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'range (\ x__ y__ -> x__ {_Occurrence'range = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Occurrence "vec'range" (Data.Vector.Unboxed.Vector Data.Int.Int32) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'range (\ x__ y__ -> x__ {_Occurrence'range = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "symbol" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'symbol (\ x__ y__ -> x__ {_Occurrence'symbol = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "symbolRoles" Data.Int.Int32 where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'symbolRoles
-           (\ x__ y__ -> x__ {_Occurrence'symbolRoles = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "overrideDocumentation" [Data.Text.Text] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'overrideDocumentation
-           (\ x__ y__ -> x__ {_Occurrence'overrideDocumentation = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Occurrence "vec'overrideDocumentation" (Data.Vector.Vector Data.Text.Text) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'overrideDocumentation
-           (\ x__ y__ -> x__ {_Occurrence'overrideDocumentation = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "syntaxKind" SyntaxKind where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'syntaxKind
-           (\ x__ y__ -> x__ {_Occurrence'syntaxKind = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "diagnostics" [Diagnostic] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'diagnostics
-           (\ x__ y__ -> x__ {_Occurrence'diagnostics = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Occurrence "vec'diagnostics" (Data.Vector.Vector Diagnostic) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'diagnostics
-           (\ x__ y__ -> x__ {_Occurrence'diagnostics = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Occurrence "enclosingRange" [Data.Int.Int32] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'enclosingRange
-           (\ x__ y__ -> x__ {_Occurrence'enclosingRange = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Occurrence "vec'enclosingRange" (Data.Vector.Unboxed.Vector Data.Int.Int32) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Occurrence'enclosingRange
-           (\ x__ y__ -> x__ {_Occurrence'enclosingRange = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Occurrence where
-  messageName _ = Data.Text.pack "scip.Occurrence"
-  packedMessageDescriptor _
-    = "\n\
-      \\n\
-      \Occurrence\DC2\DC4\n\
-      \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrange\DC2\SYN\n\
-      \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\
-      \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\
-      \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\
-      \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\
-      \syntaxKind\DC22\n\
-      \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2'\n\
-      \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRange"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        range__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "range"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"range")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        symbol__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "symbol"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        symbolRoles__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "symbol_roles"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"symbolRoles")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        overrideDocumentation__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "override_documentation"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"overrideDocumentation")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        syntaxKind__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "syntax_kind"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor SyntaxKind)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"syntaxKind")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        diagnostics__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "diagnostics"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Diagnostic)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"diagnostics")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-        enclosingRange__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "enclosing_range"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Packed
-                 (Data.ProtoLens.Field.field @"enclosingRange")) ::
-              Data.ProtoLens.FieldDescriptor Occurrence
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, range__field_descriptor),
-           (Data.ProtoLens.Tag 2, symbol__field_descriptor),
-           (Data.ProtoLens.Tag 3, symbolRoles__field_descriptor),
-           (Data.ProtoLens.Tag 4, overrideDocumentation__field_descriptor),
-           (Data.ProtoLens.Tag 5, syntaxKind__field_descriptor),
-           (Data.ProtoLens.Tag 6, diagnostics__field_descriptor),
-           (Data.ProtoLens.Tag 7, enclosingRange__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Occurrence'_unknownFields
-        (\ x__ y__ -> x__ {_Occurrence'_unknownFields = y__})
-  defMessage
-    = Occurrence'_constructor
-        {_Occurrence'range = Data.Vector.Generic.empty,
-         _Occurrence'symbol = Data.ProtoLens.fieldDefault,
-         _Occurrence'symbolRoles = Data.ProtoLens.fieldDefault,
-         _Occurrence'overrideDocumentation = Data.Vector.Generic.empty,
-         _Occurrence'syntaxKind = Data.ProtoLens.fieldDefault,
-         _Occurrence'diagnostics = Data.Vector.Generic.empty,
-         _Occurrence'enclosingRange = Data.Vector.Generic.empty,
-         _Occurrence'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Occurrence
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Diagnostic
-             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32
-                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
-                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32
-                      -> Data.ProtoLens.Encoding.Bytes.Parser Occurrence
-        loop
-          x
-          mutable'diagnostics
-          mutable'enclosingRange
-          mutable'overrideDocumentation
-          mutable'range
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'diagnostics <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                 mutable'diagnostics)
-                      frozen'enclosingRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                    mutable'enclosingRange)
-                      frozen'overrideDocumentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                           mutable'overrideDocumentation)
-                      frozen'range <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'range)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'diagnostics") frozen'diagnostics
-                              (Lens.Family2.set
-                                 (Data.ProtoLens.Field.field @"vec'enclosingRange")
-                                 frozen'enclosingRange
-                                 (Lens.Family2.set
-                                    (Data.ProtoLens.Field.field @"vec'overrideDocumentation")
-                                    frozen'overrideDocumentation
-                                    (Lens.Family2.set
-                                       (Data.ProtoLens.Field.field @"vec'range") frozen'range x)))))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (Prelude.fmap
-                                           Prelude.fromIntegral
-                                           Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                        "range"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append mutable'range y)
-                                loop
-                                  x mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation v
-                        10
-                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                        Data.ProtoLens.Encoding.Bytes.isolate
-                                          (Prelude.fromIntegral len)
-                                          ((let
-                                              ploop qs
-                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
-                                                     if packedEnd then
-                                                         Prelude.return qs
-                                                     else
-                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                                                    (Prelude.fmap
-                                                                       Prelude.fromIntegral
-                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                                                    "range"
-                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                                     (Data.ProtoLens.Encoding.Growing.append
-                                                                        qs q)
-                                                            ploop qs'
-                                            in ploop)
-                                             mutable'range)
-                                loop
-                                  x mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation y
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "symbol"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
-                                  mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation mutable'range
-                        24
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.fromIntegral
-                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                       "symbol_roles"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbolRoles") y x)
-                                  mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation mutable'range
-                        34
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.getText
-                                              (Prelude.fromIntegral len))
-                                        "override_documentation"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'overrideDocumentation y)
-                                loop x mutable'diagnostics mutable'enclosingRange v mutable'range
-                        40
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "syntax_kind"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"syntaxKind") y x)
-                                  mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation mutable'range
-                        50
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "diagnostics"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'diagnostics y)
-                                loop
-                                  x v mutable'enclosingRange mutable'overrideDocumentation
-                                  mutable'range
-                        56
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (Prelude.fmap
-                                           Prelude.fromIntegral
-                                           Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                        "enclosing_range"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'enclosingRange y)
-                                loop
-                                  x mutable'diagnostics v mutable'overrideDocumentation
-                                  mutable'range
-                        58
-                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                        Data.ProtoLens.Encoding.Bytes.isolate
-                                          (Prelude.fromIntegral len)
-                                          ((let
-                                              ploop qs
-                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
-                                                     if packedEnd then
-                                                         Prelude.return qs
-                                                     else
-                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                                                    (Prelude.fmap
-                                                                       Prelude.fromIntegral
-                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                                                    "enclosing_range"
-                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                                     (Data.ProtoLens.Encoding.Growing.append
-                                                                        qs q)
-                                                            ploop qs'
-                                            in ploop)
-                                             mutable'enclosingRange)
-                                loop
-                                  x mutable'diagnostics y mutable'overrideDocumentation
-                                  mutable'range
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'diagnostics mutable'enclosingRange
-                                  mutable'overrideDocumentation mutable'range
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'diagnostics <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       Data.ProtoLens.Encoding.Growing.new
-              mutable'enclosingRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                          Data.ProtoLens.Encoding.Growing.new
-              mutable'overrideDocumentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                 Data.ProtoLens.Encoding.Growing.new
-              mutable'range <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                 Data.ProtoLens.Encoding.Growing.new
-              loop
-                Data.ProtoLens.defMessage mutable'diagnostics
-                mutable'enclosingRange mutable'overrideDocumentation mutable'range)
-          "Occurrence"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'range") _x
-              in
-                if Data.Vector.Generic.null p then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((\ bs
-                          -> (Data.Monoid.<>)
-                               (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
-                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         (Data.ProtoLens.Encoding.Bytes.runBuilder
-                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                               ((Prelude..)
-                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                               p))))
-             ((Data.Monoid.<>)
-                (let
-                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v
-                        = Lens.Family2.view (Data.ProtoLens.Field.field @"symbolRoles") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
-                            ((Prelude..)
-                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
-                   ((Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                         (\ _v
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
-                                 ((Prelude..)
-                                    (\ bs
-                                       -> (Data.Monoid.<>)
-                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                    Data.Text.Encoding.encodeUtf8 _v))
-                         (Lens.Family2.view
-                            (Data.ProtoLens.Field.field @"vec'overrideDocumentation") _x))
-                      ((Data.Monoid.<>)
-                         (let
-                            _v
-                              = Lens.Family2.view (Data.ProtoLens.Field.field @"syntaxKind") _x
-                          in
-                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                Data.Monoid.mempty
-                            else
-                                (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
-                                  ((Prelude..)
-                                     ((Prelude..)
-                                        Data.ProtoLens.Encoding.Bytes.putVarInt
-                                        Prelude.fromIntegral)
-                                     Prelude.fromEnum _v))
-                         ((Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                               (\ _v
-                                  -> (Data.Monoid.<>)
-                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
-                                       ((Prelude..)
-                                          (\ bs
-                                             -> (Data.Monoid.<>)
-                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                     (Prelude.fromIntegral
-                                                        (Data.ByteString.length bs)))
-                                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                          Data.ProtoLens.encodeMessage _v))
-                               (Lens.Family2.view
-                                  (Data.ProtoLens.Field.field @"vec'diagnostics") _x))
-                            ((Data.Monoid.<>)
-                               (let
-                                  p = Lens.Family2.view
-                                        (Data.ProtoLens.Field.field @"vec'enclosingRange") _x
-                                in
-                                  if Data.Vector.Generic.null p then
-                                      Data.Monoid.mempty
-                                  else
-                                      (Data.Monoid.<>)
-                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
-                                        ((\ bs
-                                            -> (Data.Monoid.<>)
-                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                    (Prelude.fromIntegral
-                                                       (Data.ByteString.length bs)))
-                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                           (Data.ProtoLens.Encoding.Bytes.runBuilder
-                                              (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                                                 ((Prelude..)
-                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                    Prelude.fromIntegral)
-                                                 p))))
-                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
-instance Control.DeepSeq.NFData Occurrence where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Occurrence'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Occurrence'range x__)
-                (Control.DeepSeq.deepseq
-                   (_Occurrence'symbol x__)
-                   (Control.DeepSeq.deepseq
-                      (_Occurrence'symbolRoles x__)
-                      (Control.DeepSeq.deepseq
-                         (_Occurrence'overrideDocumentation x__)
-                         (Control.DeepSeq.deepseq
-                            (_Occurrence'syntaxKind x__)
-                            (Control.DeepSeq.deepseq
-                               (_Occurrence'diagnostics x__)
-                               (Control.DeepSeq.deepseq (_Occurrence'enclosingRange x__) ())))))))
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.manager' @:: Lens' Package Data.Text.Text@
-         * 'Proto.Scip_Fields.name' @:: Lens' Package Data.Text.Text@
-         * 'Proto.Scip_Fields.version' @:: Lens' Package Data.Text.Text@ -}
-data Package
-  = Package'_constructor {_Package'manager :: !Data.Text.Text,
-                          _Package'name :: !Data.Text.Text,
-                          _Package'version :: !Data.Text.Text,
-                          _Package'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Package where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Package "manager" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Package'manager (\ x__ y__ -> x__ {_Package'manager = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Package "name" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Package'name (\ x__ y__ -> x__ {_Package'name = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Package "version" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Package'version (\ x__ y__ -> x__ {_Package'version = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Package where
-  messageName _ = Data.Text.pack "scip.Package"
-  packedMessageDescriptor _
-    = "\n\
-      \\aPackage\DC2\CAN\n\
-      \\amanager\CAN\SOH \SOH(\tR\amanager\DC2\DC2\n\
-      \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\CAN\n\
-      \\aversion\CAN\ETX \SOH(\tR\aversion"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        manager__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "manager"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"manager")) ::
-              Data.ProtoLens.FieldDescriptor Package
-        name__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "name"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
-              Data.ProtoLens.FieldDescriptor Package
-        version__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "version"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
-              Data.ProtoLens.FieldDescriptor Package
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, manager__field_descriptor),
-           (Data.ProtoLens.Tag 2, name__field_descriptor),
-           (Data.ProtoLens.Tag 3, version__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Package'_unknownFields
-        (\ x__ y__ -> x__ {_Package'_unknownFields = y__})
-  defMessage
-    = Package'_constructor
-        {_Package'manager = Data.ProtoLens.fieldDefault,
-         _Package'name = Data.ProtoLens.fieldDefault,
-         _Package'version = Data.ProtoLens.fieldDefault,
-         _Package'_unknownFields = []}
-  parseMessage
-    = let
-        loop :: Package -> Data.ProtoLens.Encoding.Bytes.Parser Package
-        loop x
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "manager"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"manager") y x)
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "name"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
-                        26
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "version"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do loop Data.ProtoLens.defMessage) "Package"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"manager") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                            ((Prelude..)
-                               (\ bs
-                                  -> (Data.Monoid.<>)
-                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                               Data.Text.Encoding.encodeUtf8 _v))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData Package where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Package'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Package'manager x__)
-                (Control.DeepSeq.deepseq
-                   (_Package'name x__)
-                   (Control.DeepSeq.deepseq (_Package'version x__) ())))
-newtype PositionEncoding'UnrecognizedValue
-  = PositionEncoding'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data PositionEncoding
-  = UnspecifiedPositionEncoding |
-    UTF8CodeUnitOffsetFromLineStart |
-    UTF16CodeUnitOffsetFromLineStart |
-    UTF32CodeUnitOffsetFromLineStart |
-    PositionEncoding'Unrecognized !PositionEncoding'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum PositionEncoding where
-  maybeToEnum 0 = Prelude.Just UnspecifiedPositionEncoding
-  maybeToEnum 1 = Prelude.Just UTF8CodeUnitOffsetFromLineStart
-  maybeToEnum 2 = Prelude.Just UTF16CodeUnitOffsetFromLineStart
-  maybeToEnum 3 = Prelude.Just UTF32CodeUnitOffsetFromLineStart
-  maybeToEnum k
-    = Prelude.Just
-        (PositionEncoding'Unrecognized
-           (PositionEncoding'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedPositionEncoding
-    = "UnspecifiedPositionEncoding"
-  showEnum UTF8CodeUnitOffsetFromLineStart
-    = "UTF8CodeUnitOffsetFromLineStart"
-  showEnum UTF16CodeUnitOffsetFromLineStart
-    = "UTF16CodeUnitOffsetFromLineStart"
-  showEnum UTF32CodeUnitOffsetFromLineStart
-    = "UTF32CodeUnitOffsetFromLineStart"
-  showEnum
-    (PositionEncoding'Unrecognized (PositionEncoding'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedPositionEncoding"
-    = Prelude.Just UnspecifiedPositionEncoding
-    | (Prelude.==) k "UTF8CodeUnitOffsetFromLineStart"
-    = Prelude.Just UTF8CodeUnitOffsetFromLineStart
-    | (Prelude.==) k "UTF16CodeUnitOffsetFromLineStart"
-    = Prelude.Just UTF16CodeUnitOffsetFromLineStart
-    | (Prelude.==) k "UTF32CodeUnitOffsetFromLineStart"
-    = Prelude.Just UTF32CodeUnitOffsetFromLineStart
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded PositionEncoding where
-  minBound = UnspecifiedPositionEncoding
-  maxBound = UTF32CodeUnitOffsetFromLineStart
-instance Prelude.Enum PositionEncoding where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum PositionEncoding: "
-              (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedPositionEncoding = 0
-  fromEnum UTF8CodeUnitOffsetFromLineStart = 1
-  fromEnum UTF16CodeUnitOffsetFromLineStart = 2
-  fromEnum UTF32CodeUnitOffsetFromLineStart = 3
-  fromEnum
-    (PositionEncoding'Unrecognized (PositionEncoding'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ UTF32CodeUnitOffsetFromLineStart
-    = Prelude.error
-        "PositionEncoding.succ: bad argument UTF32CodeUnitOffsetFromLineStart. This value would be out of bounds."
-  succ UnspecifiedPositionEncoding = UTF8CodeUnitOffsetFromLineStart
-  succ UTF8CodeUnitOffsetFromLineStart
-    = UTF16CodeUnitOffsetFromLineStart
-  succ UTF16CodeUnitOffsetFromLineStart
-    = UTF32CodeUnitOffsetFromLineStart
-  succ (PositionEncoding'Unrecognized _)
-    = Prelude.error
-        "PositionEncoding.succ: bad argument: unrecognized value"
-  pred UnspecifiedPositionEncoding
-    = Prelude.error
-        "PositionEncoding.pred: bad argument UnspecifiedPositionEncoding. This value would be out of bounds."
-  pred UTF8CodeUnitOffsetFromLineStart = UnspecifiedPositionEncoding
-  pred UTF16CodeUnitOffsetFromLineStart
-    = UTF8CodeUnitOffsetFromLineStart
-  pred UTF32CodeUnitOffsetFromLineStart
-    = UTF16CodeUnitOffsetFromLineStart
-  pred (PositionEncoding'Unrecognized _)
-    = Prelude.error
-        "PositionEncoding.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault PositionEncoding where
-  fieldDefault = UnspecifiedPositionEncoding
-instance Control.DeepSeq.NFData PositionEncoding where
-  rnf x__ = Prelude.seq x__ ()
-newtype ProtocolVersion'UnrecognizedValue
-  = ProtocolVersion'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data ProtocolVersion
-  = UnspecifiedProtocolVersion |
-    ProtocolVersion'Unrecognized !ProtocolVersion'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum ProtocolVersion where
-  maybeToEnum 0 = Prelude.Just UnspecifiedProtocolVersion
-  maybeToEnum k
-    = Prelude.Just
-        (ProtocolVersion'Unrecognized
-           (ProtocolVersion'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedProtocolVersion = "UnspecifiedProtocolVersion"
-  showEnum
-    (ProtocolVersion'Unrecognized (ProtocolVersion'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedProtocolVersion"
-    = Prelude.Just UnspecifiedProtocolVersion
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded ProtocolVersion where
-  minBound = UnspecifiedProtocolVersion
-  maxBound = UnspecifiedProtocolVersion
-instance Prelude.Enum ProtocolVersion where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum ProtocolVersion: "
-              (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedProtocolVersion = 0
-  fromEnum
-    (ProtocolVersion'Unrecognized (ProtocolVersion'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ UnspecifiedProtocolVersion
-    = Prelude.error
-        "ProtocolVersion.succ: bad argument UnspecifiedProtocolVersion. This value would be out of bounds."
-  succ (ProtocolVersion'Unrecognized _)
-    = Prelude.error
-        "ProtocolVersion.succ: bad argument: unrecognized value"
-  pred UnspecifiedProtocolVersion
-    = Prelude.error
-        "ProtocolVersion.pred: bad argument UnspecifiedProtocolVersion. This value would be out of bounds."
-  pred (ProtocolVersion'Unrecognized _)
-    = Prelude.error
-        "ProtocolVersion.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault ProtocolVersion where
-  fieldDefault = UnspecifiedProtocolVersion
-instance Control.DeepSeq.NFData ProtocolVersion where
-  rnf x__ = Prelude.seq x__ ()
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.symbol' @:: Lens' Relationship Data.Text.Text@
-         * 'Proto.Scip_Fields.isReference' @:: Lens' Relationship Prelude.Bool@
-         * 'Proto.Scip_Fields.isImplementation' @:: Lens' Relationship Prelude.Bool@
-         * 'Proto.Scip_Fields.isTypeDefinition' @:: Lens' Relationship Prelude.Bool@
-         * 'Proto.Scip_Fields.isDefinition' @:: Lens' Relationship Prelude.Bool@ -}
-data Relationship
-  = Relationship'_constructor {_Relationship'symbol :: !Data.Text.Text,
-                               _Relationship'isReference :: !Prelude.Bool,
-                               _Relationship'isImplementation :: !Prelude.Bool,
-                               _Relationship'isTypeDefinition :: !Prelude.Bool,
-                               _Relationship'isDefinition :: !Prelude.Bool,
-                               _Relationship'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Relationship where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Relationship "symbol" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Relationship'symbol
-           (\ x__ y__ -> x__ {_Relationship'symbol = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Relationship "isReference" Prelude.Bool where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Relationship'isReference
-           (\ x__ y__ -> x__ {_Relationship'isReference = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Relationship "isImplementation" Prelude.Bool where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Relationship'isImplementation
-           (\ x__ y__ -> x__ {_Relationship'isImplementation = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Relationship "isTypeDefinition" Prelude.Bool where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Relationship'isTypeDefinition
-           (\ x__ y__ -> x__ {_Relationship'isTypeDefinition = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Relationship "isDefinition" Prelude.Bool where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Relationship'isDefinition
-           (\ x__ y__ -> x__ {_Relationship'isDefinition = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Relationship where
-  messageName _ = Data.Text.pack "scip.Relationship"
-  packedMessageDescriptor _
-    = "\n\
-      \\fRelationship\DC2\SYN\n\
-      \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2!\n\
-      \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\
-      \\DC1is_implementation\CAN\ETX \SOH(\bR\DLEisImplementation\DC2,\n\
-      \\DC2is_type_definition\CAN\EOT \SOH(\bR\DLEisTypeDefinition\DC2#\n\
-      \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        symbol__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "symbol"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
-              Data.ProtoLens.FieldDescriptor Relationship
-        isReference__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "is_reference"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
-                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"isReference")) ::
-              Data.ProtoLens.FieldDescriptor Relationship
-        isImplementation__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "is_implementation"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
-                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"isImplementation")) ::
-              Data.ProtoLens.FieldDescriptor Relationship
-        isTypeDefinition__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "is_type_definition"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
-                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"isTypeDefinition")) ::
-              Data.ProtoLens.FieldDescriptor Relationship
-        isDefinition__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "is_definition"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
-                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"isDefinition")) ::
-              Data.ProtoLens.FieldDescriptor Relationship
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, symbol__field_descriptor),
-           (Data.ProtoLens.Tag 2, isReference__field_descriptor),
-           (Data.ProtoLens.Tag 3, isImplementation__field_descriptor),
-           (Data.ProtoLens.Tag 4, isTypeDefinition__field_descriptor),
-           (Data.ProtoLens.Tag 5, isDefinition__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Relationship'_unknownFields
-        (\ x__ y__ -> x__ {_Relationship'_unknownFields = y__})
-  defMessage
-    = Relationship'_constructor
-        {_Relationship'symbol = Data.ProtoLens.fieldDefault,
-         _Relationship'isReference = Data.ProtoLens.fieldDefault,
-         _Relationship'isImplementation = Data.ProtoLens.fieldDefault,
-         _Relationship'isTypeDefinition = Data.ProtoLens.fieldDefault,
-         _Relationship'isDefinition = Data.ProtoLens.fieldDefault,
-         _Relationship'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Relationship -> Data.ProtoLens.Encoding.Bytes.Parser Relationship
-        loop x
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "symbol"
-                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
-                        16
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                       "is_reference"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isReference") y x)
-                        24
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                       "is_implementation"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"isImplementation") y x)
-                        32
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                       "is_type_definition"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"isTypeDefinition") y x)
-                        40
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
-                                       "is_definition"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"isDefinition") y x)
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do loop Data.ProtoLens.defMessage) "Relationship"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let
-                   _v
-                     = Lens.Family2.view (Data.ProtoLens.Field.field @"isReference") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
-                         ((Prelude..)
-                            Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
-                            _v))
-                ((Data.Monoid.<>)
-                   (let
-                      _v
-                        = Lens.Family2.view
-                            (Data.ProtoLens.Field.field @"isImplementation") _x
-                    in
-                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                          Data.Monoid.mempty
-                      else
-                          (Data.Monoid.<>)
-                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
-                            ((Prelude..)
-                               Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
-                               _v))
-                   ((Data.Monoid.<>)
-                      (let
-                         _v
-                           = Lens.Family2.view
-                               (Data.ProtoLens.Field.field @"isTypeDefinition") _x
-                       in
-                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                             Data.Monoid.mempty
-                         else
-                             (Data.Monoid.<>)
-                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
-                               ((Prelude..)
-                                  Data.ProtoLens.Encoding.Bytes.putVarInt
-                                  (\ b -> if b then 1 else 0) _v))
-                      ((Data.Monoid.<>)
-                         (let
-                            _v
-                              = Lens.Family2.view (Data.ProtoLens.Field.field @"isDefinition") _x
-                          in
-                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                Data.Monoid.mempty
-                            else
-                                (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
-                                  ((Prelude..)
-                                     Data.ProtoLens.Encoding.Bytes.putVarInt
-                                     (\ b -> if b then 1 else 0) _v))
-                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
-instance Control.DeepSeq.NFData Relationship where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Relationship'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Relationship'symbol x__)
-                (Control.DeepSeq.deepseq
-                   (_Relationship'isReference x__)
-                   (Control.DeepSeq.deepseq
-                      (_Relationship'isImplementation x__)
-                      (Control.DeepSeq.deepseq
-                         (_Relationship'isTypeDefinition x__)
-                         (Control.DeepSeq.deepseq (_Relationship'isDefinition x__) ())))))
-newtype Severity'UnrecognizedValue
-  = Severity'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data Severity
-  = UnspecifiedSeverity |
-    Error |
-    Warning |
-    Information |
-    Hint |
-    Severity'Unrecognized !Severity'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum Severity where
-  maybeToEnum 0 = Prelude.Just UnspecifiedSeverity
-  maybeToEnum 1 = Prelude.Just Error
-  maybeToEnum 2 = Prelude.Just Warning
-  maybeToEnum 3 = Prelude.Just Information
-  maybeToEnum 4 = Prelude.Just Hint
-  maybeToEnum k
-    = Prelude.Just
-        (Severity'Unrecognized
-           (Severity'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedSeverity = "UnspecifiedSeverity"
-  showEnum Error = "Error"
-  showEnum Warning = "Warning"
-  showEnum Information = "Information"
-  showEnum Hint = "Hint"
-  showEnum (Severity'Unrecognized (Severity'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedSeverity"
-    = Prelude.Just UnspecifiedSeverity
-    | (Prelude.==) k "Error" = Prelude.Just Error
-    | (Prelude.==) k "Warning" = Prelude.Just Warning
-    | (Prelude.==) k "Information" = Prelude.Just Information
-    | (Prelude.==) k "Hint" = Prelude.Just Hint
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded Severity where
-  minBound = UnspecifiedSeverity
-  maxBound = Hint
-instance Prelude.Enum Severity where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum Severity: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedSeverity = 0
-  fromEnum Error = 1
-  fromEnum Warning = 2
-  fromEnum Information = 3
-  fromEnum Hint = 4
-  fromEnum (Severity'Unrecognized (Severity'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ Hint
-    = Prelude.error
-        "Severity.succ: bad argument Hint. This value would be out of bounds."
-  succ UnspecifiedSeverity = Error
-  succ Error = Warning
-  succ Warning = Information
-  succ Information = Hint
-  succ (Severity'Unrecognized _)
-    = Prelude.error "Severity.succ: bad argument: unrecognized value"
-  pred UnspecifiedSeverity
-    = Prelude.error
-        "Severity.pred: bad argument UnspecifiedSeverity. This value would be out of bounds."
-  pred Error = UnspecifiedSeverity
-  pred Warning = Error
-  pred Information = Warning
-  pred Hint = Information
-  pred (Severity'Unrecognized _)
-    = Prelude.error "Severity.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault Severity where
-  fieldDefault = UnspecifiedSeverity
-instance Control.DeepSeq.NFData Severity where
-  rnf x__ = Prelude.seq x__ ()
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.language' @:: Lens' Signature Data.Text.Text@
-         * 'Proto.Scip_Fields.text' @:: Lens' Signature Data.Text.Text@
-         * 'Proto.Scip_Fields.occurrences' @:: Lens' Signature [Occurrence]@
-         * 'Proto.Scip_Fields.vec'occurrences' @:: Lens' Signature (Data.Vector.Vector Occurrence)@ -}
-data Signature
-  = Signature'_constructor {_Signature'language :: !Data.Text.Text,
-                            _Signature'text :: !Data.Text.Text,
-                            _Signature'occurrences :: !(Data.Vector.Vector Occurrence),
-                            _Signature'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Signature where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Signature "language" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Signature'language (\ x__ y__ -> x__ {_Signature'language = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Signature "text" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Signature'text (\ x__ y__ -> x__ {_Signature'text = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Signature "occurrences" [Occurrence] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Signature'occurrences
-           (\ x__ y__ -> x__ {_Signature'occurrences = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Signature "vec'occurrences" (Data.Vector.Vector Occurrence) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Signature'occurrences
-           (\ x__ y__ -> x__ {_Signature'occurrences = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Signature where
-  messageName _ = Data.Text.pack "scip.Signature"
-  packedMessageDescriptor _
-    = "\n\
-      \\tSignature\DC2\SUB\n\
-      \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2\DC2\n\
-      \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC22\n\
-      \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrencesJ\EOT\b\SOH\DLE\STXJ\EOT\b\ETX\DLE\EOTJ\EOT\b\ACK\DLE\a"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        language__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "language"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"language")) ::
-              Data.ProtoLens.FieldDescriptor Signature
-        text__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "text"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"text")) ::
-              Data.ProtoLens.FieldDescriptor Signature
-        occurrences__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "occurrences"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Occurrence)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"occurrences")) ::
-              Data.ProtoLens.FieldDescriptor Signature
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 4, language__field_descriptor),
-           (Data.ProtoLens.Tag 5, text__field_descriptor),
-           (Data.ProtoLens.Tag 2, occurrences__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Signature'_unknownFields
-        (\ x__ y__ -> x__ {_Signature'_unknownFields = y__})
-  defMessage
-    = Signature'_constructor
-        {_Signature'language = Data.ProtoLens.fieldDefault,
-         _Signature'text = Data.ProtoLens.fieldDefault,
-         _Signature'occurrences = Data.Vector.Generic.empty,
-         _Signature'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Signature
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence
-             -> Data.ProtoLens.Encoding.Bytes.Parser Signature
-        loop x mutable'occurrences
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                 mutable'occurrences)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'occurrences") frozen'occurrences
-                              x))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        34
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "language"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x)
-                                  mutable'occurrences
-                        42
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "text"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"text") y x)
-                                  mutable'occurrences
-                        18
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "occurrences"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'occurrences y)
-                                loop x v
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'occurrences
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       Data.ProtoLens.Encoding.Growing.new
-              loop Data.ProtoLens.defMessage mutable'occurrences)
-          "Signature"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"text") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.ProtoLens.encodeMessage _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'occurrences") _x))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData Signature where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Signature'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Signature'language x__)
-                (Control.DeepSeq.deepseq
-                   (_Signature'text x__)
-                   (Control.DeepSeq.deepseq (_Signature'occurrences x__) ())))
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.scheme' @:: Lens' Symbol Data.Text.Text@
-         * 'Proto.Scip_Fields.package' @:: Lens' Symbol Package@
-         * 'Proto.Scip_Fields.maybe'package' @:: Lens' Symbol (Prelude.Maybe Package)@
-         * 'Proto.Scip_Fields.descriptors' @:: Lens' Symbol [Descriptor]@
-         * 'Proto.Scip_Fields.vec'descriptors' @:: Lens' Symbol (Data.Vector.Vector Descriptor)@ -}
-data Symbol
-  = Symbol'_constructor {_Symbol'scheme :: !Data.Text.Text,
-                         _Symbol'package :: !(Prelude.Maybe Package),
-                         _Symbol'descriptors :: !(Data.Vector.Vector Descriptor),
-                         _Symbol'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show Symbol where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField Symbol "scheme" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Symbol'scheme (\ x__ y__ -> x__ {_Symbol'scheme = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Symbol "package" Package where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Symbol'package (\ x__ y__ -> x__ {_Symbol'package = y__}))
-        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
-instance Data.ProtoLens.Field.HasField Symbol "maybe'package" (Prelude.Maybe Package) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Symbol'package (\ x__ y__ -> x__ {_Symbol'package = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField Symbol "descriptors" [Descriptor] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Symbol'descriptors (\ x__ y__ -> x__ {_Symbol'descriptors = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField Symbol "vec'descriptors" (Data.Vector.Vector Descriptor) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _Symbol'descriptors (\ x__ y__ -> x__ {_Symbol'descriptors = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message Symbol where
-  messageName _ = Data.Text.pack "scip.Symbol"
-  packedMessageDescriptor _
-    = "\n\
-      \\ACKSymbol\DC2\SYN\n\
-      \\ACKscheme\CAN\SOH \SOH(\tR\ACKscheme\DC2'\n\
-      \\apackage\CAN\STX \SOH(\v2\r.scip.PackageR\apackage\DC22\n\
-      \\vdescriptors\CAN\ETX \ETX(\v2\DLE.scip.DescriptorR\vdescriptors"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        scheme__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "scheme"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"scheme")) ::
-              Data.ProtoLens.FieldDescriptor Symbol
-        package__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "package"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Package)
-              (Data.ProtoLens.OptionalField
-                 (Data.ProtoLens.Field.field @"maybe'package")) ::
-              Data.ProtoLens.FieldDescriptor Symbol
-        descriptors__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "descriptors"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Descriptor)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"descriptors")) ::
-              Data.ProtoLens.FieldDescriptor Symbol
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, scheme__field_descriptor),
-           (Data.ProtoLens.Tag 2, package__field_descriptor),
-           (Data.ProtoLens.Tag 3, descriptors__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _Symbol'_unknownFields
-        (\ x__ y__ -> x__ {_Symbol'_unknownFields = y__})
-  defMessage
-    = Symbol'_constructor
-        {_Symbol'scheme = Data.ProtoLens.fieldDefault,
-         _Symbol'package = Prelude.Nothing,
-         _Symbol'descriptors = Data.Vector.Generic.empty,
-         _Symbol'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          Symbol
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Descriptor
-             -> Data.ProtoLens.Encoding.Bytes.Parser Symbol
-        loop x mutable'descriptors
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'descriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                 mutable'descriptors)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'descriptors") frozen'descriptors
-                              x))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "scheme"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scheme") y x)
-                                  mutable'descriptors
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.isolate
-                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
-                                       "package"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"package") y x)
-                                  mutable'descriptors
-                        26
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "descriptors"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'descriptors y)
-                                loop x v
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'descriptors
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'descriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       Data.ProtoLens.Encoding.Growing.new
-              loop Data.ProtoLens.defMessage mutable'descriptors)
-          "Symbol"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"scheme") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (case
-                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'package") _x
-                 of
-                   Prelude.Nothing -> Data.Monoid.mempty
-                   (Prelude.Just _v)
-                     -> (Data.Monoid.<>)
-                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                          ((Prelude..)
-                             (\ bs
-                                -> (Data.Monoid.<>)
-                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                             Data.ProtoLens.encodeMessage _v))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.ProtoLens.encodeMessage _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'descriptors") _x))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData Symbol where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_Symbol'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_Symbol'scheme x__)
-                (Control.DeepSeq.deepseq
-                   (_Symbol'package x__)
-                   (Control.DeepSeq.deepseq (_Symbol'descriptors x__) ())))
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.symbol' @:: Lens' SymbolInformation Data.Text.Text@
-         * 'Proto.Scip_Fields.documentation' @:: Lens' SymbolInformation [Data.Text.Text]@
-         * 'Proto.Scip_Fields.vec'documentation' @:: Lens' SymbolInformation (Data.Vector.Vector Data.Text.Text)@
-         * 'Proto.Scip_Fields.relationships' @:: Lens' SymbolInformation [Relationship]@
-         * 'Proto.Scip_Fields.vec'relationships' @:: Lens' SymbolInformation (Data.Vector.Vector Relationship)@
-         * 'Proto.Scip_Fields.kind' @:: Lens' SymbolInformation SymbolInformation'Kind@
-         * 'Proto.Scip_Fields.displayName' @:: Lens' SymbolInformation Data.Text.Text@
-         * 'Proto.Scip_Fields.signatureDocumentation' @:: Lens' SymbolInformation Signature@
-         * 'Proto.Scip_Fields.maybe'signatureDocumentation' @:: Lens' SymbolInformation (Prelude.Maybe Signature)@
-         * 'Proto.Scip_Fields.enclosingSymbol' @:: Lens' SymbolInformation Data.Text.Text@ -}
-data SymbolInformation
-  = SymbolInformation'_constructor {_SymbolInformation'symbol :: !Data.Text.Text,
-                                    _SymbolInformation'documentation :: !(Data.Vector.Vector Data.Text.Text),
-                                    _SymbolInformation'relationships :: !(Data.Vector.Vector Relationship),
-                                    _SymbolInformation'kind :: !SymbolInformation'Kind,
-                                    _SymbolInformation'displayName :: !Data.Text.Text,
-                                    _SymbolInformation'signatureDocumentation :: !(Prelude.Maybe Signature),
-                                    _SymbolInformation'enclosingSymbol :: !Data.Text.Text,
-                                    _SymbolInformation'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show SymbolInformation where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField SymbolInformation "symbol" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'symbol
-           (\ x__ y__ -> x__ {_SymbolInformation'symbol = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "documentation" [Data.Text.Text] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'documentation
-           (\ x__ y__ -> x__ {_SymbolInformation'documentation = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField SymbolInformation "vec'documentation" (Data.Vector.Vector Data.Text.Text) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'documentation
-           (\ x__ y__ -> x__ {_SymbolInformation'documentation = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "relationships" [Relationship] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'relationships
-           (\ x__ y__ -> x__ {_SymbolInformation'relationships = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField SymbolInformation "vec'relationships" (Data.Vector.Vector Relationship) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'relationships
-           (\ x__ y__ -> x__ {_SymbolInformation'relationships = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "kind" SymbolInformation'Kind where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'kind
-           (\ x__ y__ -> x__ {_SymbolInformation'kind = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "displayName" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'displayName
-           (\ x__ y__ -> x__ {_SymbolInformation'displayName = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "signatureDocumentation" Signature where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'signatureDocumentation
-           (\ x__ y__
-              -> x__ {_SymbolInformation'signatureDocumentation = y__}))
-        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
-instance Data.ProtoLens.Field.HasField SymbolInformation "maybe'signatureDocumentation" (Prelude.Maybe Signature) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'signatureDocumentation
-           (\ x__ y__
-              -> x__ {_SymbolInformation'signatureDocumentation = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField SymbolInformation "enclosingSymbol" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _SymbolInformation'enclosingSymbol
-           (\ x__ y__ -> x__ {_SymbolInformation'enclosingSymbol = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message SymbolInformation where
-  messageName _ = Data.Text.pack "scip.SymbolInformation"
-  packedMessageDescriptor _
-    = "\n\
-      \\DC1SymbolInformation\DC2\SYN\n\
-      \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2$\n\
-      \\rdocumentation\CAN\ETX \ETX(\tR\rdocumentation\DC28\n\
-      \\rrelationships\CAN\EOT \ETX(\v2\DC2.scip.RelationshipR\rrelationships\DC20\n\
-      \\EOTkind\CAN\ENQ \SOH(\SO2\FS.scip.SymbolInformation.KindR\EOTkind\DC2!\n\
-      \\fdisplay_name\CAN\ACK \SOH(\tR\vdisplayName\DC2H\n\
-      \\ETBsignature_documentation\CAN\a \SOH(\v2\SI.scip.SignatureR\SYNsignatureDocumentation\DC2)\n\
-      \\DLEenclosing_symbol\CAN\b \SOH(\tR\SIenclosingSymbol\"\251\t\n\
-      \\EOTKind\DC2\DC3\n\
-      \\SIUnspecifiedKind\DLE\NUL\DC2\DC2\n\
-      \\SOAbstractMethod\DLEB\DC2\f\n\
-      \\bAccessor\DLEH\DC2\t\n\
-      \\ENQArray\DLE\SOH\DC2\r\n\
-      \\tAssertion\DLE\STX\DC2\DC2\n\
-      \\SOAssociatedType\DLE\ETX\DC2\r\n\
-      \\tAttribute\DLE\EOT\DC2\t\n\
-      \\ENQAxiom\DLE\ENQ\DC2\v\n\
-      \\aBoolean\DLE\ACK\DC2\t\n\
-      \\ENQClass\DLE\a\DC2\v\n\
-      \\aConcept\DLEV\DC2\f\n\
-      \\bConstant\DLE\b\DC2\SI\n\
-      \\vConstructor\DLE\t\DC2\f\n\
-      \\bContract\DLE>\DC2\SO\n\
-      \\n\
-      \DataFamily\DLE\n\
-      \\DC2\f\n\
-      \\bDelegate\DLEI\DC2\b\n\
-      \\EOTEnum\DLE\v\DC2\SO\n\
-      \\n\
-      \EnumMember\DLE\f\DC2\t\n\
-      \\ENQError\DLE?\DC2\t\n\
-      \\ENQEvent\DLE\r\DC2\r\n\
-      \\tExtension\DLET\DC2\b\n\
-      \\EOTFact\DLE\SO\DC2\t\n\
-      \\ENQField\DLE\SI\DC2\b\n\
-      \\EOTFile\DLE\DLE\DC2\f\n\
-      \\bFunction\DLE\DC1\DC2\n\
-      \\n\
-      \\ACKGetter\DLE\DC2\DC2\v\n\
-      \\aGrammar\DLE\DC3\DC2\f\n\
-      \\bInstance\DLE\DC4\DC2\r\n\
-      \\tInterface\DLE\NAK\DC2\a\n\
-      \\ETXKey\DLE\SYN\DC2\b\n\
-      \\EOTLang\DLE\ETB\DC2\t\n\
-      \\ENQLemma\DLE\CAN\DC2\v\n\
-      \\aLibrary\DLE@\DC2\t\n\
-      \\ENQMacro\DLE\EM\DC2\n\
-      \\n\
-      \\ACKMethod\DLE\SUB\DC2\SI\n\
-      \\vMethodAlias\DLEJ\DC2\DC2\n\
-      \\SOMethodReceiver\DLE\ESC\DC2\ETB\n\
-      \\DC3MethodSpecification\DLEC\DC2\v\n\
-      \\aMessage\DLE\FS\DC2\t\n\
-      \\ENQMixin\DLEU\DC2\f\n\
-      \\bModifier\DLEA\DC2\n\
-      \\n\
-      \\ACKModule\DLE\GS\DC2\r\n\
-      \\tNamespace\DLE\RS\DC2\b\n\
-      \\EOTNull\DLE\US\DC2\n\
-      \\n\
-      \\ACKNumber\DLE \DC2\n\
-      \\n\
-      \\ACKObject\DLE!\DC2\f\n\
-      \\bOperator\DLE\"\DC2\v\n\
-      \\aPackage\DLE#\DC2\DC1\n\
-      \\rPackageObject\DLE$\DC2\r\n\
-      \\tParameter\DLE%\DC2\DC2\n\
-      \\SOParameterLabel\DLE&\DC2\v\n\
-      \\aPattern\DLE'\DC2\r\n\
-      \\tPredicate\DLE(\DC2\f\n\
-      \\bProperty\DLE)\DC2\f\n\
-      \\bProtocol\DLE*\DC2\DC2\n\
-      \\SOProtocolMethod\DLED\DC2\NAK\n\
-      \\DC1PureVirtualMethod\DLEE\DC2\SI\n\
-      \\vQuasiquoter\DLE+\DC2\DC1\n\
-      \\rSelfParameter\DLE,\DC2\n\
-      \\n\
-      \\ACKSetter\DLE-\DC2\r\n\
-      \\tSignature\DLE.\DC2\DC2\n\
-      \\SOSingletonClass\DLEK\DC2\DC3\n\
-      \\SISingletonMethod\DLEL\DC2\DC4\n\
-      \\DLEStaticDataMember\DLEM\DC2\SI\n\
-      \\vStaticEvent\DLEN\DC2\SI\n\
-      \\vStaticField\DLEO\DC2\DLE\n\
-      \\fStaticMethod\DLEP\DC2\DC2\n\
-      \\SOStaticProperty\DLEQ\DC2\DC2\n\
-      \\SOStaticVariable\DLER\DC2\n\
-      \\n\
-      \\ACKString\DLE0\DC2\n\
-      \\n\
-      \\ACKStruct\DLE1\DC2\r\n\
-      \\tSubscript\DLE/\DC2\n\
-      \\n\
-      \\ACKTactic\DLE2\DC2\v\n\
-      \\aTheorem\DLE3\DC2\DC1\n\
-      \\rThisParameter\DLE4\DC2\t\n\
-      \\ENQTrait\DLE5\DC2\SI\n\
-      \\vTraitMethod\DLEF\DC2\b\n\
-      \\EOTType\DLE6\DC2\r\n\
-      \\tTypeAlias\DLE7\DC2\r\n\
-      \\tTypeClass\DLE8\DC2\DC3\n\
-      \\SITypeClassMethod\DLEG\DC2\SO\n\
-      \\n\
-      \TypeFamily\DLE9\DC2\DC1\n\
-      \\rTypeParameter\DLE:\DC2\t\n\
-      \\ENQUnion\DLE;\DC2\t\n\
-      \\ENQValue\DLE<\DC2\f\n\
-      \\bVariable\DLE="
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        symbol__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "symbol"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        documentation__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "documentation"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"documentation")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        relationships__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "relationships"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Relationship)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"relationships")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        kind__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "kind"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
-                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation'Kind)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"kind")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        displayName__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "display_name"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"displayName")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        signatureDocumentation__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "signature_documentation"
-              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
-                 Data.ProtoLens.FieldTypeDescriptor Signature)
-              (Data.ProtoLens.OptionalField
-                 (Data.ProtoLens.Field.field @"maybe'signatureDocumentation")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-        enclosingSymbol__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "enclosing_symbol"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional
-                 (Data.ProtoLens.Field.field @"enclosingSymbol")) ::
-              Data.ProtoLens.FieldDescriptor SymbolInformation
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, symbol__field_descriptor),
-           (Data.ProtoLens.Tag 3, documentation__field_descriptor),
-           (Data.ProtoLens.Tag 4, relationships__field_descriptor),
-           (Data.ProtoLens.Tag 5, kind__field_descriptor),
-           (Data.ProtoLens.Tag 6, displayName__field_descriptor),
-           (Data.ProtoLens.Tag 7, signatureDocumentation__field_descriptor),
-           (Data.ProtoLens.Tag 8, enclosingSymbol__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _SymbolInformation'_unknownFields
-        (\ x__ y__ -> x__ {_SymbolInformation'_unknownFields = y__})
-  defMessage
-    = SymbolInformation'_constructor
-        {_SymbolInformation'symbol = Data.ProtoLens.fieldDefault,
-         _SymbolInformation'documentation = Data.Vector.Generic.empty,
-         _SymbolInformation'relationships = Data.Vector.Generic.empty,
-         _SymbolInformation'kind = Data.ProtoLens.fieldDefault,
-         _SymbolInformation'displayName = Data.ProtoLens.fieldDefault,
-         _SymbolInformation'signatureDocumentation = Prelude.Nothing,
-         _SymbolInformation'enclosingSymbol = Data.ProtoLens.fieldDefault,
-         _SymbolInformation'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          SymbolInformation
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
-             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Relationship
-                -> Data.ProtoLens.Encoding.Bytes.Parser SymbolInformation
-        loop x mutable'documentation mutable'relationships
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'documentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                   mutable'documentation)
-                      frozen'relationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                                   mutable'relationships)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'documentation")
-                              frozen'documentation
-                              (Lens.Family2.set
-                                 (Data.ProtoLens.Field.field @"vec'relationships")
-                                 frozen'relationships x)))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "symbol"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
-                                  mutable'documentation mutable'relationships
-                        26
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.getText
-                                              (Prelude.fromIntegral len))
-                                        "documentation"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'documentation y)
-                                loop x v mutable'relationships
-                        34
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.isolate
-                                              (Prelude.fromIntegral len)
-                                              Data.ProtoLens.parseMessage)
-                                        "relationships"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append
-                                          mutable'relationships y)
-                                loop x mutable'documentation v
-                        40
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (Prelude.fmap
-                                          Prelude.toEnum
-                                          (Prelude.fmap
-                                             Prelude.fromIntegral
-                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
-                                       "kind"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"kind") y x)
-                                  mutable'documentation mutable'relationships
-                        50
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "display_name"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"displayName") y x)
-                                  mutable'documentation mutable'relationships
-                        58
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.isolate
-                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
-                                       "signature_documentation"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"signatureDocumentation") y x)
-                                  mutable'documentation mutable'relationships
-                        66
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "enclosing_symbol"
-                                loop
-                                  (Lens.Family2.set
-                                     (Data.ProtoLens.Field.field @"enclosingSymbol") y x)
-                                  mutable'documentation mutable'relationships
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'documentation mutable'relationships
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'documentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                         Data.ProtoLens.Encoding.Growing.new
-              mutable'relationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                         Data.ProtoLens.Encoding.Growing.new
-              loop
-                Data.ProtoLens.defMessage mutable'documentation
-                mutable'relationships)
-          "SymbolInformation"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let
-                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                   (\ _v
-                      -> (Data.Monoid.<>)
-                           (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                           ((Prelude..)
-                              (\ bs
-                                 -> (Data.Monoid.<>)
-                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                              Data.Text.Encoding.encodeUtf8 _v))
-                   (Lens.Family2.view
-                      (Data.ProtoLens.Field.field @"vec'documentation") _x))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.ProtoLens.encodeMessage _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'relationships") _x))
-                   ((Data.Monoid.<>)
-                      (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"kind") _x
-                       in
-                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                             Data.Monoid.mempty
-                         else
-                             (Data.Monoid.<>)
-                               (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
-                               ((Prelude..)
-                                  ((Prelude..)
-                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
-                                  Prelude.fromEnum _v))
-                      ((Data.Monoid.<>)
-                         (let
-                            _v
-                              = Lens.Family2.view (Data.ProtoLens.Field.field @"displayName") _x
-                          in
-                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                Data.Monoid.mempty
-                            else
-                                (Data.Monoid.<>)
-                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
-                                  ((Prelude..)
-                                     (\ bs
-                                        -> (Data.Monoid.<>)
-                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                     Data.Text.Encoding.encodeUtf8 _v))
-                         ((Data.Monoid.<>)
-                            (case
-                                 Lens.Family2.view
-                                   (Data.ProtoLens.Field.field @"maybe'signatureDocumentation") _x
-                             of
-                               Prelude.Nothing -> Data.Monoid.mempty
-                               (Prelude.Just _v)
-                                 -> (Data.Monoid.<>)
-                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
-                                      ((Prelude..)
-                                         (\ bs
-                                            -> (Data.Monoid.<>)
-                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                    (Prelude.fromIntegral
-                                                       (Data.ByteString.length bs)))
-                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                         Data.ProtoLens.encodeMessage _v))
-                            ((Data.Monoid.<>)
-                               (let
-                                  _v
-                                    = Lens.Family2.view
-                                        (Data.ProtoLens.Field.field @"enclosingSymbol") _x
-                                in
-                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                                      Data.Monoid.mempty
-                                  else
-                                      (Data.Monoid.<>)
-                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
-                                        ((Prelude..)
-                                           (\ bs
-                                              -> (Data.Monoid.<>)
-                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                                      (Prelude.fromIntegral
-                                                         (Data.ByteString.length bs)))
-                                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                           Data.Text.Encoding.encodeUtf8 _v))
-                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
-instance Control.DeepSeq.NFData SymbolInformation where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_SymbolInformation'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_SymbolInformation'symbol x__)
-                (Control.DeepSeq.deepseq
-                   (_SymbolInformation'documentation x__)
-                   (Control.DeepSeq.deepseq
-                      (_SymbolInformation'relationships x__)
-                      (Control.DeepSeq.deepseq
-                         (_SymbolInformation'kind x__)
-                         (Control.DeepSeq.deepseq
-                            (_SymbolInformation'displayName x__)
-                            (Control.DeepSeq.deepseq
-                               (_SymbolInformation'signatureDocumentation x__)
-                               (Control.DeepSeq.deepseq
-                                  (_SymbolInformation'enclosingSymbol x__) ())))))))
-newtype SymbolInformation'Kind'UnrecognizedValue
-  = SymbolInformation'Kind'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data SymbolInformation'Kind
-  = SymbolInformation'UnspecifiedKind |
-    SymbolInformation'Array |
-    SymbolInformation'Assertion |
-    SymbolInformation'AssociatedType |
-    SymbolInformation'Attribute |
-    SymbolInformation'Axiom |
-    SymbolInformation'Boolean |
-    SymbolInformation'Class |
-    SymbolInformation'Constant |
-    SymbolInformation'Constructor |
-    SymbolInformation'DataFamily |
-    SymbolInformation'Enum |
-    SymbolInformation'EnumMember |
-    SymbolInformation'Event |
-    SymbolInformation'Fact |
-    SymbolInformation'Field |
-    SymbolInformation'File |
-    SymbolInformation'Function |
-    SymbolInformation'Getter |
-    SymbolInformation'Grammar |
-    SymbolInformation'Instance |
-    SymbolInformation'Interface |
-    SymbolInformation'Key |
-    SymbolInformation'Lang |
-    SymbolInformation'Lemma |
-    SymbolInformation'Macro |
-    SymbolInformation'Method |
-    SymbolInformation'MethodReceiver |
-    SymbolInformation'Message |
-    SymbolInformation'Module |
-    SymbolInformation'Namespace |
-    SymbolInformation'Null |
-    SymbolInformation'Number |
-    SymbolInformation'Object |
-    SymbolInformation'Operator |
-    SymbolInformation'Package |
-    SymbolInformation'PackageObject |
-    SymbolInformation'Parameter |
-    SymbolInformation'ParameterLabel |
-    SymbolInformation'Pattern |
-    SymbolInformation'Predicate |
-    SymbolInformation'Property |
-    SymbolInformation'Protocol |
-    SymbolInformation'Quasiquoter |
-    SymbolInformation'SelfParameter |
-    SymbolInformation'Setter |
-    SymbolInformation'Signature |
-    SymbolInformation'Subscript |
-    SymbolInformation'String |
-    SymbolInformation'Struct |
-    SymbolInformation'Tactic |
-    SymbolInformation'Theorem |
-    SymbolInformation'ThisParameter |
-    SymbolInformation'Trait |
-    SymbolInformation'Type |
-    SymbolInformation'TypeAlias |
-    SymbolInformation'TypeClass |
-    SymbolInformation'TypeFamily |
-    SymbolInformation'TypeParameter |
-    SymbolInformation'Union |
-    SymbolInformation'Value |
-    SymbolInformation'Variable |
-    SymbolInformation'Contract |
-    SymbolInformation'Error |
-    SymbolInformation'Library |
-    SymbolInformation'Modifier |
-    SymbolInformation'AbstractMethod |
-    SymbolInformation'MethodSpecification |
-    SymbolInformation'ProtocolMethod |
-    SymbolInformation'PureVirtualMethod |
-    SymbolInformation'TraitMethod |
-    SymbolInformation'TypeClassMethod |
-    SymbolInformation'Accessor |
-    SymbolInformation'Delegate |
-    SymbolInformation'MethodAlias |
-    SymbolInformation'SingletonClass |
-    SymbolInformation'SingletonMethod |
-    SymbolInformation'StaticDataMember |
-    SymbolInformation'StaticEvent |
-    SymbolInformation'StaticField |
-    SymbolInformation'StaticMethod |
-    SymbolInformation'StaticProperty |
-    SymbolInformation'StaticVariable |
-    SymbolInformation'Extension |
-    SymbolInformation'Mixin |
-    SymbolInformation'Concept |
-    SymbolInformation'Kind'Unrecognized !SymbolInformation'Kind'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum SymbolInformation'Kind where
-  maybeToEnum 0 = Prelude.Just SymbolInformation'UnspecifiedKind
-  maybeToEnum 1 = Prelude.Just SymbolInformation'Array
-  maybeToEnum 2 = Prelude.Just SymbolInformation'Assertion
-  maybeToEnum 3 = Prelude.Just SymbolInformation'AssociatedType
-  maybeToEnum 4 = Prelude.Just SymbolInformation'Attribute
-  maybeToEnum 5 = Prelude.Just SymbolInformation'Axiom
-  maybeToEnum 6 = Prelude.Just SymbolInformation'Boolean
-  maybeToEnum 7 = Prelude.Just SymbolInformation'Class
-  maybeToEnum 8 = Prelude.Just SymbolInformation'Constant
-  maybeToEnum 9 = Prelude.Just SymbolInformation'Constructor
-  maybeToEnum 10 = Prelude.Just SymbolInformation'DataFamily
-  maybeToEnum 11 = Prelude.Just SymbolInformation'Enum
-  maybeToEnum 12 = Prelude.Just SymbolInformation'EnumMember
-  maybeToEnum 13 = Prelude.Just SymbolInformation'Event
-  maybeToEnum 14 = Prelude.Just SymbolInformation'Fact
-  maybeToEnum 15 = Prelude.Just SymbolInformation'Field
-  maybeToEnum 16 = Prelude.Just SymbolInformation'File
-  maybeToEnum 17 = Prelude.Just SymbolInformation'Function
-  maybeToEnum 18 = Prelude.Just SymbolInformation'Getter
-  maybeToEnum 19 = Prelude.Just SymbolInformation'Grammar
-  maybeToEnum 20 = Prelude.Just SymbolInformation'Instance
-  maybeToEnum 21 = Prelude.Just SymbolInformation'Interface
-  maybeToEnum 22 = Prelude.Just SymbolInformation'Key
-  maybeToEnum 23 = Prelude.Just SymbolInformation'Lang
-  maybeToEnum 24 = Prelude.Just SymbolInformation'Lemma
-  maybeToEnum 25 = Prelude.Just SymbolInformation'Macro
-  maybeToEnum 26 = Prelude.Just SymbolInformation'Method
-  maybeToEnum 27 = Prelude.Just SymbolInformation'MethodReceiver
-  maybeToEnum 28 = Prelude.Just SymbolInformation'Message
-  maybeToEnum 29 = Prelude.Just SymbolInformation'Module
-  maybeToEnum 30 = Prelude.Just SymbolInformation'Namespace
-  maybeToEnum 31 = Prelude.Just SymbolInformation'Null
-  maybeToEnum 32 = Prelude.Just SymbolInformation'Number
-  maybeToEnum 33 = Prelude.Just SymbolInformation'Object
-  maybeToEnum 34 = Prelude.Just SymbolInformation'Operator
-  maybeToEnum 35 = Prelude.Just SymbolInformation'Package
-  maybeToEnum 36 = Prelude.Just SymbolInformation'PackageObject
-  maybeToEnum 37 = Prelude.Just SymbolInformation'Parameter
-  maybeToEnum 38 = Prelude.Just SymbolInformation'ParameterLabel
-  maybeToEnum 39 = Prelude.Just SymbolInformation'Pattern
-  maybeToEnum 40 = Prelude.Just SymbolInformation'Predicate
-  maybeToEnum 41 = Prelude.Just SymbolInformation'Property
-  maybeToEnum 42 = Prelude.Just SymbolInformation'Protocol
-  maybeToEnum 43 = Prelude.Just SymbolInformation'Quasiquoter
-  maybeToEnum 44 = Prelude.Just SymbolInformation'SelfParameter
-  maybeToEnum 45 = Prelude.Just SymbolInformation'Setter
-  maybeToEnum 46 = Prelude.Just SymbolInformation'Signature
-  maybeToEnum 47 = Prelude.Just SymbolInformation'Subscript
-  maybeToEnum 48 = Prelude.Just SymbolInformation'String
-  maybeToEnum 49 = Prelude.Just SymbolInformation'Struct
-  maybeToEnum 50 = Prelude.Just SymbolInformation'Tactic
-  maybeToEnum 51 = Prelude.Just SymbolInformation'Theorem
-  maybeToEnum 52 = Prelude.Just SymbolInformation'ThisParameter
-  maybeToEnum 53 = Prelude.Just SymbolInformation'Trait
-  maybeToEnum 54 = Prelude.Just SymbolInformation'Type
-  maybeToEnum 55 = Prelude.Just SymbolInformation'TypeAlias
-  maybeToEnum 56 = Prelude.Just SymbolInformation'TypeClass
-  maybeToEnum 57 = Prelude.Just SymbolInformation'TypeFamily
-  maybeToEnum 58 = Prelude.Just SymbolInformation'TypeParameter
-  maybeToEnum 59 = Prelude.Just SymbolInformation'Union
-  maybeToEnum 60 = Prelude.Just SymbolInformation'Value
-  maybeToEnum 61 = Prelude.Just SymbolInformation'Variable
-  maybeToEnum 62 = Prelude.Just SymbolInformation'Contract
-  maybeToEnum 63 = Prelude.Just SymbolInformation'Error
-  maybeToEnum 64 = Prelude.Just SymbolInformation'Library
-  maybeToEnum 65 = Prelude.Just SymbolInformation'Modifier
-  maybeToEnum 66 = Prelude.Just SymbolInformation'AbstractMethod
-  maybeToEnum 67 = Prelude.Just SymbolInformation'MethodSpecification
-  maybeToEnum 68 = Prelude.Just SymbolInformation'ProtocolMethod
-  maybeToEnum 69 = Prelude.Just SymbolInformation'PureVirtualMethod
-  maybeToEnum 70 = Prelude.Just SymbolInformation'TraitMethod
-  maybeToEnum 71 = Prelude.Just SymbolInformation'TypeClassMethod
-  maybeToEnum 72 = Prelude.Just SymbolInformation'Accessor
-  maybeToEnum 73 = Prelude.Just SymbolInformation'Delegate
-  maybeToEnum 74 = Prelude.Just SymbolInformation'MethodAlias
-  maybeToEnum 75 = Prelude.Just SymbolInformation'SingletonClass
-  maybeToEnum 76 = Prelude.Just SymbolInformation'SingletonMethod
-  maybeToEnum 77 = Prelude.Just SymbolInformation'StaticDataMember
-  maybeToEnum 78 = Prelude.Just SymbolInformation'StaticEvent
-  maybeToEnum 79 = Prelude.Just SymbolInformation'StaticField
-  maybeToEnum 80 = Prelude.Just SymbolInformation'StaticMethod
-  maybeToEnum 81 = Prelude.Just SymbolInformation'StaticProperty
-  maybeToEnum 82 = Prelude.Just SymbolInformation'StaticVariable
-  maybeToEnum 84 = Prelude.Just SymbolInformation'Extension
-  maybeToEnum 85 = Prelude.Just SymbolInformation'Mixin
-  maybeToEnum 86 = Prelude.Just SymbolInformation'Concept
-  maybeToEnum k
-    = Prelude.Just
-        (SymbolInformation'Kind'Unrecognized
-           (SymbolInformation'Kind'UnrecognizedValue
-              (Prelude.fromIntegral k)))
-  showEnum SymbolInformation'UnspecifiedKind = "UnspecifiedKind"
-  showEnum SymbolInformation'AbstractMethod = "AbstractMethod"
-  showEnum SymbolInformation'Accessor = "Accessor"
-  showEnum SymbolInformation'Array = "Array"
-  showEnum SymbolInformation'Assertion = "Assertion"
-  showEnum SymbolInformation'AssociatedType = "AssociatedType"
-  showEnum SymbolInformation'Attribute = "Attribute"
-  showEnum SymbolInformation'Axiom = "Axiom"
-  showEnum SymbolInformation'Boolean = "Boolean"
-  showEnum SymbolInformation'Class = "Class"
-  showEnum SymbolInformation'Concept = "Concept"
-  showEnum SymbolInformation'Constant = "Constant"
-  showEnum SymbolInformation'Constructor = "Constructor"
-  showEnum SymbolInformation'Contract = "Contract"
-  showEnum SymbolInformation'DataFamily = "DataFamily"
-  showEnum SymbolInformation'Delegate = "Delegate"
-  showEnum SymbolInformation'Enum = "Enum"
-  showEnum SymbolInformation'EnumMember = "EnumMember"
-  showEnum SymbolInformation'Error = "Error"
-  showEnum SymbolInformation'Event = "Event"
-  showEnum SymbolInformation'Extension = "Extension"
-  showEnum SymbolInformation'Fact = "Fact"
-  showEnum SymbolInformation'Field = "Field"
-  showEnum SymbolInformation'File = "File"
-  showEnum SymbolInformation'Function = "Function"
-  showEnum SymbolInformation'Getter = "Getter"
-  showEnum SymbolInformation'Grammar = "Grammar"
-  showEnum SymbolInformation'Instance = "Instance"
-  showEnum SymbolInformation'Interface = "Interface"
-  showEnum SymbolInformation'Key = "Key"
-  showEnum SymbolInformation'Lang = "Lang"
-  showEnum SymbolInformation'Lemma = "Lemma"
-  showEnum SymbolInformation'Library = "Library"
-  showEnum SymbolInformation'Macro = "Macro"
-  showEnum SymbolInformation'Method = "Method"
-  showEnum SymbolInformation'MethodAlias = "MethodAlias"
-  showEnum SymbolInformation'MethodReceiver = "MethodReceiver"
-  showEnum SymbolInformation'MethodSpecification
-    = "MethodSpecification"
-  showEnum SymbolInformation'Message = "Message"
-  showEnum SymbolInformation'Mixin = "Mixin"
-  showEnum SymbolInformation'Modifier = "Modifier"
-  showEnum SymbolInformation'Module = "Module"
-  showEnum SymbolInformation'Namespace = "Namespace"
-  showEnum SymbolInformation'Null = "Null"
-  showEnum SymbolInformation'Number = "Number"
-  showEnum SymbolInformation'Object = "Object"
-  showEnum SymbolInformation'Operator = "Operator"
-  showEnum SymbolInformation'Package = "Package"
-  showEnum SymbolInformation'PackageObject = "PackageObject"
-  showEnum SymbolInformation'Parameter = "Parameter"
-  showEnum SymbolInformation'ParameterLabel = "ParameterLabel"
-  showEnum SymbolInformation'Pattern = "Pattern"
-  showEnum SymbolInformation'Predicate = "Predicate"
-  showEnum SymbolInformation'Property = "Property"
-  showEnum SymbolInformation'Protocol = "Protocol"
-  showEnum SymbolInformation'ProtocolMethod = "ProtocolMethod"
-  showEnum SymbolInformation'PureVirtualMethod = "PureVirtualMethod"
-  showEnum SymbolInformation'Quasiquoter = "Quasiquoter"
-  showEnum SymbolInformation'SelfParameter = "SelfParameter"
-  showEnum SymbolInformation'Setter = "Setter"
-  showEnum SymbolInformation'Signature = "Signature"
-  showEnum SymbolInformation'SingletonClass = "SingletonClass"
-  showEnum SymbolInformation'SingletonMethod = "SingletonMethod"
-  showEnum SymbolInformation'StaticDataMember = "StaticDataMember"
-  showEnum SymbolInformation'StaticEvent = "StaticEvent"
-  showEnum SymbolInformation'StaticField = "StaticField"
-  showEnum SymbolInformation'StaticMethod = "StaticMethod"
-  showEnum SymbolInformation'StaticProperty = "StaticProperty"
-  showEnum SymbolInformation'StaticVariable = "StaticVariable"
-  showEnum SymbolInformation'String = "String"
-  showEnum SymbolInformation'Struct = "Struct"
-  showEnum SymbolInformation'Subscript = "Subscript"
-  showEnum SymbolInformation'Tactic = "Tactic"
-  showEnum SymbolInformation'Theorem = "Theorem"
-  showEnum SymbolInformation'ThisParameter = "ThisParameter"
-  showEnum SymbolInformation'Trait = "Trait"
-  showEnum SymbolInformation'TraitMethod = "TraitMethod"
-  showEnum SymbolInformation'Type = "Type"
-  showEnum SymbolInformation'TypeAlias = "TypeAlias"
-  showEnum SymbolInformation'TypeClass = "TypeClass"
-  showEnum SymbolInformation'TypeClassMethod = "TypeClassMethod"
-  showEnum SymbolInformation'TypeFamily = "TypeFamily"
-  showEnum SymbolInformation'TypeParameter = "TypeParameter"
-  showEnum SymbolInformation'Union = "Union"
-  showEnum SymbolInformation'Value = "Value"
-  showEnum SymbolInformation'Variable = "Variable"
-  showEnum
-    (SymbolInformation'Kind'Unrecognized (SymbolInformation'Kind'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedKind"
-    = Prelude.Just SymbolInformation'UnspecifiedKind
-    | (Prelude.==) k "AbstractMethod"
-    = Prelude.Just SymbolInformation'AbstractMethod
-    | (Prelude.==) k "Accessor"
-    = Prelude.Just SymbolInformation'Accessor
-    | (Prelude.==) k "Array" = Prelude.Just SymbolInformation'Array
-    | (Prelude.==) k "Assertion"
-    = Prelude.Just SymbolInformation'Assertion
-    | (Prelude.==) k "AssociatedType"
-    = Prelude.Just SymbolInformation'AssociatedType
-    | (Prelude.==) k "Attribute"
-    = Prelude.Just SymbolInformation'Attribute
-    | (Prelude.==) k "Axiom" = Prelude.Just SymbolInformation'Axiom
-    | (Prelude.==) k "Boolean" = Prelude.Just SymbolInformation'Boolean
-    | (Prelude.==) k "Class" = Prelude.Just SymbolInformation'Class
-    | (Prelude.==) k "Concept" = Prelude.Just SymbolInformation'Concept
-    | (Prelude.==) k "Constant"
-    = Prelude.Just SymbolInformation'Constant
-    | (Prelude.==) k "Constructor"
-    = Prelude.Just SymbolInformation'Constructor
-    | (Prelude.==) k "Contract"
-    = Prelude.Just SymbolInformation'Contract
-    | (Prelude.==) k "DataFamily"
-    = Prelude.Just SymbolInformation'DataFamily
-    | (Prelude.==) k "Delegate"
-    = Prelude.Just SymbolInformation'Delegate
-    | (Prelude.==) k "Enum" = Prelude.Just SymbolInformation'Enum
-    | (Prelude.==) k "EnumMember"
-    = Prelude.Just SymbolInformation'EnumMember
-    | (Prelude.==) k "Error" = Prelude.Just SymbolInformation'Error
-    | (Prelude.==) k "Event" = Prelude.Just SymbolInformation'Event
-    | (Prelude.==) k "Extension"
-    = Prelude.Just SymbolInformation'Extension
-    | (Prelude.==) k "Fact" = Prelude.Just SymbolInformation'Fact
-    | (Prelude.==) k "Field" = Prelude.Just SymbolInformation'Field
-    | (Prelude.==) k "File" = Prelude.Just SymbolInformation'File
-    | (Prelude.==) k "Function"
-    = Prelude.Just SymbolInformation'Function
-    | (Prelude.==) k "Getter" = Prelude.Just SymbolInformation'Getter
-    | (Prelude.==) k "Grammar" = Prelude.Just SymbolInformation'Grammar
-    | (Prelude.==) k "Instance"
-    = Prelude.Just SymbolInformation'Instance
-    | (Prelude.==) k "Interface"
-    = Prelude.Just SymbolInformation'Interface
-    | (Prelude.==) k "Key" = Prelude.Just SymbolInformation'Key
-    | (Prelude.==) k "Lang" = Prelude.Just SymbolInformation'Lang
-    | (Prelude.==) k "Lemma" = Prelude.Just SymbolInformation'Lemma
-    | (Prelude.==) k "Library" = Prelude.Just SymbolInformation'Library
-    | (Prelude.==) k "Macro" = Prelude.Just SymbolInformation'Macro
-    | (Prelude.==) k "Method" = Prelude.Just SymbolInformation'Method
-    | (Prelude.==) k "MethodAlias"
-    = Prelude.Just SymbolInformation'MethodAlias
-    | (Prelude.==) k "MethodReceiver"
-    = Prelude.Just SymbolInformation'MethodReceiver
-    | (Prelude.==) k "MethodSpecification"
-    = Prelude.Just SymbolInformation'MethodSpecification
-    | (Prelude.==) k "Message" = Prelude.Just SymbolInformation'Message
-    | (Prelude.==) k "Mixin" = Prelude.Just SymbolInformation'Mixin
-    | (Prelude.==) k "Modifier"
-    = Prelude.Just SymbolInformation'Modifier
-    | (Prelude.==) k "Module" = Prelude.Just SymbolInformation'Module
-    | (Prelude.==) k "Namespace"
-    = Prelude.Just SymbolInformation'Namespace
-    | (Prelude.==) k "Null" = Prelude.Just SymbolInformation'Null
-    | (Prelude.==) k "Number" = Prelude.Just SymbolInformation'Number
-    | (Prelude.==) k "Object" = Prelude.Just SymbolInformation'Object
-    | (Prelude.==) k "Operator"
-    = Prelude.Just SymbolInformation'Operator
-    | (Prelude.==) k "Package" = Prelude.Just SymbolInformation'Package
-    | (Prelude.==) k "PackageObject"
-    = Prelude.Just SymbolInformation'PackageObject
-    | (Prelude.==) k "Parameter"
-    = Prelude.Just SymbolInformation'Parameter
-    | (Prelude.==) k "ParameterLabel"
-    = Prelude.Just SymbolInformation'ParameterLabel
-    | (Prelude.==) k "Pattern" = Prelude.Just SymbolInformation'Pattern
-    | (Prelude.==) k "Predicate"
-    = Prelude.Just SymbolInformation'Predicate
-    | (Prelude.==) k "Property"
-    = Prelude.Just SymbolInformation'Property
-    | (Prelude.==) k "Protocol"
-    = Prelude.Just SymbolInformation'Protocol
-    | (Prelude.==) k "ProtocolMethod"
-    = Prelude.Just SymbolInformation'ProtocolMethod
-    | (Prelude.==) k "PureVirtualMethod"
-    = Prelude.Just SymbolInformation'PureVirtualMethod
-    | (Prelude.==) k "Quasiquoter"
-    = Prelude.Just SymbolInformation'Quasiquoter
-    | (Prelude.==) k "SelfParameter"
-    = Prelude.Just SymbolInformation'SelfParameter
-    | (Prelude.==) k "Setter" = Prelude.Just SymbolInformation'Setter
-    | (Prelude.==) k "Signature"
-    = Prelude.Just SymbolInformation'Signature
-    | (Prelude.==) k "SingletonClass"
-    = Prelude.Just SymbolInformation'SingletonClass
-    | (Prelude.==) k "SingletonMethod"
-    = Prelude.Just SymbolInformation'SingletonMethod
-    | (Prelude.==) k "StaticDataMember"
-    = Prelude.Just SymbolInformation'StaticDataMember
-    | (Prelude.==) k "StaticEvent"
-    = Prelude.Just SymbolInformation'StaticEvent
-    | (Prelude.==) k "StaticField"
-    = Prelude.Just SymbolInformation'StaticField
-    | (Prelude.==) k "StaticMethod"
-    = Prelude.Just SymbolInformation'StaticMethod
-    | (Prelude.==) k "StaticProperty"
-    = Prelude.Just SymbolInformation'StaticProperty
-    | (Prelude.==) k "StaticVariable"
-    = Prelude.Just SymbolInformation'StaticVariable
-    | (Prelude.==) k "String" = Prelude.Just SymbolInformation'String
-    | (Prelude.==) k "Struct" = Prelude.Just SymbolInformation'Struct
-    | (Prelude.==) k "Subscript"
-    = Prelude.Just SymbolInformation'Subscript
-    | (Prelude.==) k "Tactic" = Prelude.Just SymbolInformation'Tactic
-    | (Prelude.==) k "Theorem" = Prelude.Just SymbolInformation'Theorem
-    | (Prelude.==) k "ThisParameter"
-    = Prelude.Just SymbolInformation'ThisParameter
-    | (Prelude.==) k "Trait" = Prelude.Just SymbolInformation'Trait
-    | (Prelude.==) k "TraitMethod"
-    = Prelude.Just SymbolInformation'TraitMethod
-    | (Prelude.==) k "Type" = Prelude.Just SymbolInformation'Type
-    | (Prelude.==) k "TypeAlias"
-    = Prelude.Just SymbolInformation'TypeAlias
-    | (Prelude.==) k "TypeClass"
-    = Prelude.Just SymbolInformation'TypeClass
-    | (Prelude.==) k "TypeClassMethod"
-    = Prelude.Just SymbolInformation'TypeClassMethod
-    | (Prelude.==) k "TypeFamily"
-    = Prelude.Just SymbolInformation'TypeFamily
-    | (Prelude.==) k "TypeParameter"
-    = Prelude.Just SymbolInformation'TypeParameter
-    | (Prelude.==) k "Union" = Prelude.Just SymbolInformation'Union
-    | (Prelude.==) k "Value" = Prelude.Just SymbolInformation'Value
-    | (Prelude.==) k "Variable"
-    = Prelude.Just SymbolInformation'Variable
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded SymbolInformation'Kind where
-  minBound = SymbolInformation'UnspecifiedKind
-  maxBound = SymbolInformation'Concept
-instance Prelude.Enum SymbolInformation'Kind where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum Kind: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum SymbolInformation'UnspecifiedKind = 0
-  fromEnum SymbolInformation'Array = 1
-  fromEnum SymbolInformation'Assertion = 2
-  fromEnum SymbolInformation'AssociatedType = 3
-  fromEnum SymbolInformation'Attribute = 4
-  fromEnum SymbolInformation'Axiom = 5
-  fromEnum SymbolInformation'Boolean = 6
-  fromEnum SymbolInformation'Class = 7
-  fromEnum SymbolInformation'Constant = 8
-  fromEnum SymbolInformation'Constructor = 9
-  fromEnum SymbolInformation'DataFamily = 10
-  fromEnum SymbolInformation'Enum = 11
-  fromEnum SymbolInformation'EnumMember = 12
-  fromEnum SymbolInformation'Event = 13
-  fromEnum SymbolInformation'Fact = 14
-  fromEnum SymbolInformation'Field = 15
-  fromEnum SymbolInformation'File = 16
-  fromEnum SymbolInformation'Function = 17
-  fromEnum SymbolInformation'Getter = 18
-  fromEnum SymbolInformation'Grammar = 19
-  fromEnum SymbolInformation'Instance = 20
-  fromEnum SymbolInformation'Interface = 21
-  fromEnum SymbolInformation'Key = 22
-  fromEnum SymbolInformation'Lang = 23
-  fromEnum SymbolInformation'Lemma = 24
-  fromEnum SymbolInformation'Macro = 25
-  fromEnum SymbolInformation'Method = 26
-  fromEnum SymbolInformation'MethodReceiver = 27
-  fromEnum SymbolInformation'Message = 28
-  fromEnum SymbolInformation'Module = 29
-  fromEnum SymbolInformation'Namespace = 30
-  fromEnum SymbolInformation'Null = 31
-  fromEnum SymbolInformation'Number = 32
-  fromEnum SymbolInformation'Object = 33
-  fromEnum SymbolInformation'Operator = 34
-  fromEnum SymbolInformation'Package = 35
-  fromEnum SymbolInformation'PackageObject = 36
-  fromEnum SymbolInformation'Parameter = 37
-  fromEnum SymbolInformation'ParameterLabel = 38
-  fromEnum SymbolInformation'Pattern = 39
-  fromEnum SymbolInformation'Predicate = 40
-  fromEnum SymbolInformation'Property = 41
-  fromEnum SymbolInformation'Protocol = 42
-  fromEnum SymbolInformation'Quasiquoter = 43
-  fromEnum SymbolInformation'SelfParameter = 44
-  fromEnum SymbolInformation'Setter = 45
-  fromEnum SymbolInformation'Signature = 46
-  fromEnum SymbolInformation'Subscript = 47
-  fromEnum SymbolInformation'String = 48
-  fromEnum SymbolInformation'Struct = 49
-  fromEnum SymbolInformation'Tactic = 50
-  fromEnum SymbolInformation'Theorem = 51
-  fromEnum SymbolInformation'ThisParameter = 52
-  fromEnum SymbolInformation'Trait = 53
-  fromEnum SymbolInformation'Type = 54
-  fromEnum SymbolInformation'TypeAlias = 55
-  fromEnum SymbolInformation'TypeClass = 56
-  fromEnum SymbolInformation'TypeFamily = 57
-  fromEnum SymbolInformation'TypeParameter = 58
-  fromEnum SymbolInformation'Union = 59
-  fromEnum SymbolInformation'Value = 60
-  fromEnum SymbolInformation'Variable = 61
-  fromEnum SymbolInformation'Contract = 62
-  fromEnum SymbolInformation'Error = 63
-  fromEnum SymbolInformation'Library = 64
-  fromEnum SymbolInformation'Modifier = 65
-  fromEnum SymbolInformation'AbstractMethod = 66
-  fromEnum SymbolInformation'MethodSpecification = 67
-  fromEnum SymbolInformation'ProtocolMethod = 68
-  fromEnum SymbolInformation'PureVirtualMethod = 69
-  fromEnum SymbolInformation'TraitMethod = 70
-  fromEnum SymbolInformation'TypeClassMethod = 71
-  fromEnum SymbolInformation'Accessor = 72
-  fromEnum SymbolInformation'Delegate = 73
-  fromEnum SymbolInformation'MethodAlias = 74
-  fromEnum SymbolInformation'SingletonClass = 75
-  fromEnum SymbolInformation'SingletonMethod = 76
-  fromEnum SymbolInformation'StaticDataMember = 77
-  fromEnum SymbolInformation'StaticEvent = 78
-  fromEnum SymbolInformation'StaticField = 79
-  fromEnum SymbolInformation'StaticMethod = 80
-  fromEnum SymbolInformation'StaticProperty = 81
-  fromEnum SymbolInformation'StaticVariable = 82
-  fromEnum SymbolInformation'Extension = 84
-  fromEnum SymbolInformation'Mixin = 85
-  fromEnum SymbolInformation'Concept = 86
-  fromEnum
-    (SymbolInformation'Kind'Unrecognized (SymbolInformation'Kind'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ SymbolInformation'Concept
-    = Prelude.error
-        "SymbolInformation'Kind.succ: bad argument SymbolInformation'Concept. This value would be out of bounds."
-  succ SymbolInformation'UnspecifiedKind = SymbolInformation'Array
-  succ SymbolInformation'Array = SymbolInformation'Assertion
-  succ SymbolInformation'Assertion = SymbolInformation'AssociatedType
-  succ SymbolInformation'AssociatedType = SymbolInformation'Attribute
-  succ SymbolInformation'Attribute = SymbolInformation'Axiom
-  succ SymbolInformation'Axiom = SymbolInformation'Boolean
-  succ SymbolInformation'Boolean = SymbolInformation'Class
-  succ SymbolInformation'Class = SymbolInformation'Constant
-  succ SymbolInformation'Constant = SymbolInformation'Constructor
-  succ SymbolInformation'Constructor = SymbolInformation'DataFamily
-  succ SymbolInformation'DataFamily = SymbolInformation'Enum
-  succ SymbolInformation'Enum = SymbolInformation'EnumMember
-  succ SymbolInformation'EnumMember = SymbolInformation'Event
-  succ SymbolInformation'Event = SymbolInformation'Fact
-  succ SymbolInformation'Fact = SymbolInformation'Field
-  succ SymbolInformation'Field = SymbolInformation'File
-  succ SymbolInformation'File = SymbolInformation'Function
-  succ SymbolInformation'Function = SymbolInformation'Getter
-  succ SymbolInformation'Getter = SymbolInformation'Grammar
-  succ SymbolInformation'Grammar = SymbolInformation'Instance
-  succ SymbolInformation'Instance = SymbolInformation'Interface
-  succ SymbolInformation'Interface = SymbolInformation'Key
-  succ SymbolInformation'Key = SymbolInformation'Lang
-  succ SymbolInformation'Lang = SymbolInformation'Lemma
-  succ SymbolInformation'Lemma = SymbolInformation'Macro
-  succ SymbolInformation'Macro = SymbolInformation'Method
-  succ SymbolInformation'Method = SymbolInformation'MethodReceiver
-  succ SymbolInformation'MethodReceiver = SymbolInformation'Message
-  succ SymbolInformation'Message = SymbolInformation'Module
-  succ SymbolInformation'Module = SymbolInformation'Namespace
-  succ SymbolInformation'Namespace = SymbolInformation'Null
-  succ SymbolInformation'Null = SymbolInformation'Number
-  succ SymbolInformation'Number = SymbolInformation'Object
-  succ SymbolInformation'Object = SymbolInformation'Operator
-  succ SymbolInformation'Operator = SymbolInformation'Package
-  succ SymbolInformation'Package = SymbolInformation'PackageObject
-  succ SymbolInformation'PackageObject = SymbolInformation'Parameter
-  succ SymbolInformation'Parameter = SymbolInformation'ParameterLabel
-  succ SymbolInformation'ParameterLabel = SymbolInformation'Pattern
-  succ SymbolInformation'Pattern = SymbolInformation'Predicate
-  succ SymbolInformation'Predicate = SymbolInformation'Property
-  succ SymbolInformation'Property = SymbolInformation'Protocol
-  succ SymbolInformation'Protocol = SymbolInformation'Quasiquoter
-  succ SymbolInformation'Quasiquoter
-    = SymbolInformation'SelfParameter
-  succ SymbolInformation'SelfParameter = SymbolInformation'Setter
-  succ SymbolInformation'Setter = SymbolInformation'Signature
-  succ SymbolInformation'Signature = SymbolInformation'Subscript
-  succ SymbolInformation'Subscript = SymbolInformation'String
-  succ SymbolInformation'String = SymbolInformation'Struct
-  succ SymbolInformation'Struct = SymbolInformation'Tactic
-  succ SymbolInformation'Tactic = SymbolInformation'Theorem
-  succ SymbolInformation'Theorem = SymbolInformation'ThisParameter
-  succ SymbolInformation'ThisParameter = SymbolInformation'Trait
-  succ SymbolInformation'Trait = SymbolInformation'Type
-  succ SymbolInformation'Type = SymbolInformation'TypeAlias
-  succ SymbolInformation'TypeAlias = SymbolInformation'TypeClass
-  succ SymbolInformation'TypeClass = SymbolInformation'TypeFamily
-  succ SymbolInformation'TypeFamily = SymbolInformation'TypeParameter
-  succ SymbolInformation'TypeParameter = SymbolInformation'Union
-  succ SymbolInformation'Union = SymbolInformation'Value
-  succ SymbolInformation'Value = SymbolInformation'Variable
-  succ SymbolInformation'Variable = SymbolInformation'Contract
-  succ SymbolInformation'Contract = SymbolInformation'Error
-  succ SymbolInformation'Error = SymbolInformation'Library
-  succ SymbolInformation'Library = SymbolInformation'Modifier
-  succ SymbolInformation'Modifier = SymbolInformation'AbstractMethod
-  succ SymbolInformation'AbstractMethod
-    = SymbolInformation'MethodSpecification
-  succ SymbolInformation'MethodSpecification
-    = SymbolInformation'ProtocolMethod
-  succ SymbolInformation'ProtocolMethod
-    = SymbolInformation'PureVirtualMethod
-  succ SymbolInformation'PureVirtualMethod
-    = SymbolInformation'TraitMethod
-  succ SymbolInformation'TraitMethod
-    = SymbolInformation'TypeClassMethod
-  succ SymbolInformation'TypeClassMethod = SymbolInformation'Accessor
-  succ SymbolInformation'Accessor = SymbolInformation'Delegate
-  succ SymbolInformation'Delegate = SymbolInformation'MethodAlias
-  succ SymbolInformation'MethodAlias
-    = SymbolInformation'SingletonClass
-  succ SymbolInformation'SingletonClass
-    = SymbolInformation'SingletonMethod
-  succ SymbolInformation'SingletonMethod
-    = SymbolInformation'StaticDataMember
-  succ SymbolInformation'StaticDataMember
-    = SymbolInformation'StaticEvent
-  succ SymbolInformation'StaticEvent = SymbolInformation'StaticField
-  succ SymbolInformation'StaticField = SymbolInformation'StaticMethod
-  succ SymbolInformation'StaticMethod
-    = SymbolInformation'StaticProperty
-  succ SymbolInformation'StaticProperty
-    = SymbolInformation'StaticVariable
-  succ SymbolInformation'StaticVariable = SymbolInformation'Extension
-  succ SymbolInformation'Extension = SymbolInformation'Mixin
-  succ SymbolInformation'Mixin = SymbolInformation'Concept
-  succ (SymbolInformation'Kind'Unrecognized _)
-    = Prelude.error
-        "SymbolInformation'Kind.succ: bad argument: unrecognized value"
-  pred SymbolInformation'UnspecifiedKind
-    = Prelude.error
-        "SymbolInformation'Kind.pred: bad argument SymbolInformation'UnspecifiedKind. This value would be out of bounds."
-  pred SymbolInformation'Array = SymbolInformation'UnspecifiedKind
-  pred SymbolInformation'Assertion = SymbolInformation'Array
-  pred SymbolInformation'AssociatedType = SymbolInformation'Assertion
-  pred SymbolInformation'Attribute = SymbolInformation'AssociatedType
-  pred SymbolInformation'Axiom = SymbolInformation'Attribute
-  pred SymbolInformation'Boolean = SymbolInformation'Axiom
-  pred SymbolInformation'Class = SymbolInformation'Boolean
-  pred SymbolInformation'Constant = SymbolInformation'Class
-  pred SymbolInformation'Constructor = SymbolInformation'Constant
-  pred SymbolInformation'DataFamily = SymbolInformation'Constructor
-  pred SymbolInformation'Enum = SymbolInformation'DataFamily
-  pred SymbolInformation'EnumMember = SymbolInformation'Enum
-  pred SymbolInformation'Event = SymbolInformation'EnumMember
-  pred SymbolInformation'Fact = SymbolInformation'Event
-  pred SymbolInformation'Field = SymbolInformation'Fact
-  pred SymbolInformation'File = SymbolInformation'Field
-  pred SymbolInformation'Function = SymbolInformation'File
-  pred SymbolInformation'Getter = SymbolInformation'Function
-  pred SymbolInformation'Grammar = SymbolInformation'Getter
-  pred SymbolInformation'Instance = SymbolInformation'Grammar
-  pred SymbolInformation'Interface = SymbolInformation'Instance
-  pred SymbolInformation'Key = SymbolInformation'Interface
-  pred SymbolInformation'Lang = SymbolInformation'Key
-  pred SymbolInformation'Lemma = SymbolInformation'Lang
-  pred SymbolInformation'Macro = SymbolInformation'Lemma
-  pred SymbolInformation'Method = SymbolInformation'Macro
-  pred SymbolInformation'MethodReceiver = SymbolInformation'Method
-  pred SymbolInformation'Message = SymbolInformation'MethodReceiver
-  pred SymbolInformation'Module = SymbolInformation'Message
-  pred SymbolInformation'Namespace = SymbolInformation'Module
-  pred SymbolInformation'Null = SymbolInformation'Namespace
-  pred SymbolInformation'Number = SymbolInformation'Null
-  pred SymbolInformation'Object = SymbolInformation'Number
-  pred SymbolInformation'Operator = SymbolInformation'Object
-  pred SymbolInformation'Package = SymbolInformation'Operator
-  pred SymbolInformation'PackageObject = SymbolInformation'Package
-  pred SymbolInformation'Parameter = SymbolInformation'PackageObject
-  pred SymbolInformation'ParameterLabel = SymbolInformation'Parameter
-  pred SymbolInformation'Pattern = SymbolInformation'ParameterLabel
-  pred SymbolInformation'Predicate = SymbolInformation'Pattern
-  pred SymbolInformation'Property = SymbolInformation'Predicate
-  pred SymbolInformation'Protocol = SymbolInformation'Property
-  pred SymbolInformation'Quasiquoter = SymbolInformation'Protocol
-  pred SymbolInformation'SelfParameter
-    = SymbolInformation'Quasiquoter
-  pred SymbolInformation'Setter = SymbolInformation'SelfParameter
-  pred SymbolInformation'Signature = SymbolInformation'Setter
-  pred SymbolInformation'Subscript = SymbolInformation'Signature
-  pred SymbolInformation'String = SymbolInformation'Subscript
-  pred SymbolInformation'Struct = SymbolInformation'String
-  pred SymbolInformation'Tactic = SymbolInformation'Struct
-  pred SymbolInformation'Theorem = SymbolInformation'Tactic
-  pred SymbolInformation'ThisParameter = SymbolInformation'Theorem
-  pred SymbolInformation'Trait = SymbolInformation'ThisParameter
-  pred SymbolInformation'Type = SymbolInformation'Trait
-  pred SymbolInformation'TypeAlias = SymbolInformation'Type
-  pred SymbolInformation'TypeClass = SymbolInformation'TypeAlias
-  pred SymbolInformation'TypeFamily = SymbolInformation'TypeClass
-  pred SymbolInformation'TypeParameter = SymbolInformation'TypeFamily
-  pred SymbolInformation'Union = SymbolInformation'TypeParameter
-  pred SymbolInformation'Value = SymbolInformation'Union
-  pred SymbolInformation'Variable = SymbolInformation'Value
-  pred SymbolInformation'Contract = SymbolInformation'Variable
-  pred SymbolInformation'Error = SymbolInformation'Contract
-  pred SymbolInformation'Library = SymbolInformation'Error
-  pred SymbolInformation'Modifier = SymbolInformation'Library
-  pred SymbolInformation'AbstractMethod = SymbolInformation'Modifier
-  pred SymbolInformation'MethodSpecification
-    = SymbolInformation'AbstractMethod
-  pred SymbolInformation'ProtocolMethod
-    = SymbolInformation'MethodSpecification
-  pred SymbolInformation'PureVirtualMethod
-    = SymbolInformation'ProtocolMethod
-  pred SymbolInformation'TraitMethod
-    = SymbolInformation'PureVirtualMethod
-  pred SymbolInformation'TypeClassMethod
-    = SymbolInformation'TraitMethod
-  pred SymbolInformation'Accessor = SymbolInformation'TypeClassMethod
-  pred SymbolInformation'Delegate = SymbolInformation'Accessor
-  pred SymbolInformation'MethodAlias = SymbolInformation'Delegate
-  pred SymbolInformation'SingletonClass
-    = SymbolInformation'MethodAlias
-  pred SymbolInformation'SingletonMethod
-    = SymbolInformation'SingletonClass
-  pred SymbolInformation'StaticDataMember
-    = SymbolInformation'SingletonMethod
-  pred SymbolInformation'StaticEvent
-    = SymbolInformation'StaticDataMember
-  pred SymbolInformation'StaticField = SymbolInformation'StaticEvent
-  pred SymbolInformation'StaticMethod = SymbolInformation'StaticField
-  pred SymbolInformation'StaticProperty
-    = SymbolInformation'StaticMethod
-  pred SymbolInformation'StaticVariable
-    = SymbolInformation'StaticProperty
-  pred SymbolInformation'Extension = SymbolInformation'StaticVariable
-  pred SymbolInformation'Mixin = SymbolInformation'Extension
-  pred SymbolInformation'Concept = SymbolInformation'Mixin
-  pred (SymbolInformation'Kind'Unrecognized _)
-    = Prelude.error
-        "SymbolInformation'Kind.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault SymbolInformation'Kind where
-  fieldDefault = SymbolInformation'UnspecifiedKind
-instance Control.DeepSeq.NFData SymbolInformation'Kind where
-  rnf x__ = Prelude.seq x__ ()
-newtype SymbolRole'UnrecognizedValue
-  = SymbolRole'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data SymbolRole
-  = UnspecifiedSymbolRole |
-    Definition |
-    Import |
-    WriteAccess |
-    ReadAccess |
-    Generated |
-    Test |
-    ForwardDefinition |
-    SymbolRole'Unrecognized !SymbolRole'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum SymbolRole where
-  maybeToEnum 0 = Prelude.Just UnspecifiedSymbolRole
-  maybeToEnum 1 = Prelude.Just Definition
-  maybeToEnum 2 = Prelude.Just Import
-  maybeToEnum 4 = Prelude.Just WriteAccess
-  maybeToEnum 8 = Prelude.Just ReadAccess
-  maybeToEnum 16 = Prelude.Just Generated
-  maybeToEnum 32 = Prelude.Just Test
-  maybeToEnum 64 = Prelude.Just ForwardDefinition
-  maybeToEnum k
-    = Prelude.Just
-        (SymbolRole'Unrecognized
-           (SymbolRole'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedSymbolRole = "UnspecifiedSymbolRole"
-  showEnum Definition = "Definition"
-  showEnum Import = "Import"
-  showEnum WriteAccess = "WriteAccess"
-  showEnum ReadAccess = "ReadAccess"
-  showEnum Generated = "Generated"
-  showEnum Test = "Test"
-  showEnum ForwardDefinition = "ForwardDefinition"
-  showEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedSymbolRole"
-    = Prelude.Just UnspecifiedSymbolRole
-    | (Prelude.==) k "Definition" = Prelude.Just Definition
-    | (Prelude.==) k "Import" = Prelude.Just Import
-    | (Prelude.==) k "WriteAccess" = Prelude.Just WriteAccess
-    | (Prelude.==) k "ReadAccess" = Prelude.Just ReadAccess
-    | (Prelude.==) k "Generated" = Prelude.Just Generated
-    | (Prelude.==) k "Test" = Prelude.Just Test
-    | (Prelude.==) k "ForwardDefinition"
-    = Prelude.Just ForwardDefinition
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded SymbolRole where
-  minBound = UnspecifiedSymbolRole
-  maxBound = ForwardDefinition
-instance Prelude.Enum SymbolRole where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum SymbolRole: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedSymbolRole = 0
-  fromEnum Definition = 1
-  fromEnum Import = 2
-  fromEnum WriteAccess = 4
-  fromEnum ReadAccess = 8
-  fromEnum Generated = 16
-  fromEnum Test = 32
-  fromEnum ForwardDefinition = 64
-  fromEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ ForwardDefinition
-    = Prelude.error
-        "SymbolRole.succ: bad argument ForwardDefinition. This value would be out of bounds."
-  succ UnspecifiedSymbolRole = Definition
-  succ Definition = Import
-  succ Import = WriteAccess
-  succ WriteAccess = ReadAccess
-  succ ReadAccess = Generated
-  succ Generated = Test
-  succ Test = ForwardDefinition
-  succ (SymbolRole'Unrecognized _)
-    = Prelude.error "SymbolRole.succ: bad argument: unrecognized value"
-  pred UnspecifiedSymbolRole
-    = Prelude.error
-        "SymbolRole.pred: bad argument UnspecifiedSymbolRole. This value would be out of bounds."
-  pred Definition = UnspecifiedSymbolRole
-  pred Import = Definition
-  pred WriteAccess = Import
-  pred ReadAccess = WriteAccess
-  pred Generated = ReadAccess
-  pred Test = Generated
-  pred ForwardDefinition = Test
-  pred (SymbolRole'Unrecognized _)
-    = Prelude.error "SymbolRole.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault SymbolRole where
-  fieldDefault = UnspecifiedSymbolRole
-instance Control.DeepSeq.NFData SymbolRole where
-  rnf x__ = Prelude.seq x__ ()
-newtype SyntaxKind'UnrecognizedValue
-  = SyntaxKind'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data SyntaxKind
-  = UnspecifiedSyntaxKind |
-    Comment |
-    PunctuationDelimiter |
-    PunctuationBracket |
-    Keyword |
-    IdentifierOperator |
-    Identifier |
-    IdentifierBuiltin |
-    IdentifierNull |
-    IdentifierConstant |
-    IdentifierMutableGlobal |
-    IdentifierParameter |
-    IdentifierLocal |
-    IdentifierShadowed |
-    IdentifierNamespace |
-    IdentifierFunction |
-    IdentifierFunctionDefinition |
-    IdentifierMacro |
-    IdentifierMacroDefinition |
-    IdentifierType |
-    IdentifierBuiltinType |
-    IdentifierAttribute |
-    RegexEscape |
-    RegexRepeated |
-    RegexWildcard |
-    RegexDelimiter |
-    RegexJoin |
-    StringLiteral |
-    StringLiteralEscape |
-    StringLiteralSpecial |
-    StringLiteralKey |
-    CharacterLiteral |
-    NumericLiteral |
-    BooleanLiteral |
-    Tag |
-    TagAttribute |
-    TagDelimiter |
-    SyntaxKind'Unrecognized !SyntaxKind'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum SyntaxKind where
-  maybeToEnum 0 = Prelude.Just UnspecifiedSyntaxKind
-  maybeToEnum 1 = Prelude.Just Comment
-  maybeToEnum 2 = Prelude.Just PunctuationDelimiter
-  maybeToEnum 3 = Prelude.Just PunctuationBracket
-  maybeToEnum 4 = Prelude.Just Keyword
-  maybeToEnum 5 = Prelude.Just IdentifierOperator
-  maybeToEnum 6 = Prelude.Just Identifier
-  maybeToEnum 7 = Prelude.Just IdentifierBuiltin
-  maybeToEnum 8 = Prelude.Just IdentifierNull
-  maybeToEnum 9 = Prelude.Just IdentifierConstant
-  maybeToEnum 10 = Prelude.Just IdentifierMutableGlobal
-  maybeToEnum 11 = Prelude.Just IdentifierParameter
-  maybeToEnum 12 = Prelude.Just IdentifierLocal
-  maybeToEnum 13 = Prelude.Just IdentifierShadowed
-  maybeToEnum 14 = Prelude.Just IdentifierNamespace
-  maybeToEnum 15 = Prelude.Just IdentifierFunction
-  maybeToEnum 16 = Prelude.Just IdentifierFunctionDefinition
-  maybeToEnum 17 = Prelude.Just IdentifierMacro
-  maybeToEnum 18 = Prelude.Just IdentifierMacroDefinition
-  maybeToEnum 19 = Prelude.Just IdentifierType
-  maybeToEnum 20 = Prelude.Just IdentifierBuiltinType
-  maybeToEnum 21 = Prelude.Just IdentifierAttribute
-  maybeToEnum 22 = Prelude.Just RegexEscape
-  maybeToEnum 23 = Prelude.Just RegexRepeated
-  maybeToEnum 24 = Prelude.Just RegexWildcard
-  maybeToEnum 25 = Prelude.Just RegexDelimiter
-  maybeToEnum 26 = Prelude.Just RegexJoin
-  maybeToEnum 27 = Prelude.Just StringLiteral
-  maybeToEnum 28 = Prelude.Just StringLiteralEscape
-  maybeToEnum 29 = Prelude.Just StringLiteralSpecial
-  maybeToEnum 30 = Prelude.Just StringLiteralKey
-  maybeToEnum 31 = Prelude.Just CharacterLiteral
-  maybeToEnum 32 = Prelude.Just NumericLiteral
-  maybeToEnum 33 = Prelude.Just BooleanLiteral
-  maybeToEnum 34 = Prelude.Just Tag
-  maybeToEnum 35 = Prelude.Just TagAttribute
-  maybeToEnum 36 = Prelude.Just TagDelimiter
-  maybeToEnum k
-    = Prelude.Just
-        (SyntaxKind'Unrecognized
-           (SyntaxKind'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedSyntaxKind = "UnspecifiedSyntaxKind"
-  showEnum Comment = "Comment"
-  showEnum PunctuationDelimiter = "PunctuationDelimiter"
-  showEnum PunctuationBracket = "PunctuationBracket"
-  showEnum Keyword = "Keyword"
-  showEnum IdentifierOperator = "IdentifierOperator"
-  showEnum Identifier = "Identifier"
-  showEnum IdentifierBuiltin = "IdentifierBuiltin"
-  showEnum IdentifierNull = "IdentifierNull"
-  showEnum IdentifierConstant = "IdentifierConstant"
-  showEnum IdentifierMutableGlobal = "IdentifierMutableGlobal"
-  showEnum IdentifierParameter = "IdentifierParameter"
-  showEnum IdentifierLocal = "IdentifierLocal"
-  showEnum IdentifierShadowed = "IdentifierShadowed"
-  showEnum IdentifierNamespace = "IdentifierNamespace"
-  showEnum IdentifierFunction = "IdentifierFunction"
-  showEnum IdentifierFunctionDefinition
-    = "IdentifierFunctionDefinition"
-  showEnum IdentifierMacro = "IdentifierMacro"
-  showEnum IdentifierMacroDefinition = "IdentifierMacroDefinition"
-  showEnum IdentifierType = "IdentifierType"
-  showEnum IdentifierBuiltinType = "IdentifierBuiltinType"
-  showEnum IdentifierAttribute = "IdentifierAttribute"
-  showEnum RegexEscape = "RegexEscape"
-  showEnum RegexRepeated = "RegexRepeated"
-  showEnum RegexWildcard = "RegexWildcard"
-  showEnum RegexDelimiter = "RegexDelimiter"
-  showEnum RegexJoin = "RegexJoin"
-  showEnum StringLiteral = "StringLiteral"
-  showEnum StringLiteralEscape = "StringLiteralEscape"
-  showEnum StringLiteralSpecial = "StringLiteralSpecial"
-  showEnum StringLiteralKey = "StringLiteralKey"
-  showEnum CharacterLiteral = "CharacterLiteral"
-  showEnum NumericLiteral = "NumericLiteral"
-  showEnum BooleanLiteral = "BooleanLiteral"
-  showEnum Tag = "Tag"
-  showEnum TagAttribute = "TagAttribute"
-  showEnum TagDelimiter = "TagDelimiter"
-  showEnum (SyntaxKind'Unrecognized (SyntaxKind'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedSyntaxKind"
-    = Prelude.Just UnspecifiedSyntaxKind
-    | (Prelude.==) k "Comment" = Prelude.Just Comment
-    | (Prelude.==) k "PunctuationDelimiter"
-    = Prelude.Just PunctuationDelimiter
-    | (Prelude.==) k "PunctuationBracket"
-    = Prelude.Just PunctuationBracket
-    | (Prelude.==) k "Keyword" = Prelude.Just Keyword
-    | (Prelude.==) k "IdentifierKeyword"
-    = Prelude.Just IdentifierKeyword
-    | (Prelude.==) k "IdentifierOperator"
-    = Prelude.Just IdentifierOperator
-    | (Prelude.==) k "Identifier" = Prelude.Just Identifier
-    | (Prelude.==) k "IdentifierBuiltin"
-    = Prelude.Just IdentifierBuiltin
-    | (Prelude.==) k "IdentifierNull" = Prelude.Just IdentifierNull
-    | (Prelude.==) k "IdentifierConstant"
-    = Prelude.Just IdentifierConstant
-    | (Prelude.==) k "IdentifierMutableGlobal"
-    = Prelude.Just IdentifierMutableGlobal
-    | (Prelude.==) k "IdentifierParameter"
-    = Prelude.Just IdentifierParameter
-    | (Prelude.==) k "IdentifierLocal" = Prelude.Just IdentifierLocal
-    | (Prelude.==) k "IdentifierShadowed"
-    = Prelude.Just IdentifierShadowed
-    | (Prelude.==) k "IdentifierNamespace"
-    = Prelude.Just IdentifierNamespace
-    | (Prelude.==) k "IdentifierModule" = Prelude.Just IdentifierModule
-    | (Prelude.==) k "IdentifierFunction"
-    = Prelude.Just IdentifierFunction
-    | (Prelude.==) k "IdentifierFunctionDefinition"
-    = Prelude.Just IdentifierFunctionDefinition
-    | (Prelude.==) k "IdentifierMacro" = Prelude.Just IdentifierMacro
-    | (Prelude.==) k "IdentifierMacroDefinition"
-    = Prelude.Just IdentifierMacroDefinition
-    | (Prelude.==) k "IdentifierType" = Prelude.Just IdentifierType
-    | (Prelude.==) k "IdentifierBuiltinType"
-    = Prelude.Just IdentifierBuiltinType
-    | (Prelude.==) k "IdentifierAttribute"
-    = Prelude.Just IdentifierAttribute
-    | (Prelude.==) k "RegexEscape" = Prelude.Just RegexEscape
-    | (Prelude.==) k "RegexRepeated" = Prelude.Just RegexRepeated
-    | (Prelude.==) k "RegexWildcard" = Prelude.Just RegexWildcard
-    | (Prelude.==) k "RegexDelimiter" = Prelude.Just RegexDelimiter
-    | (Prelude.==) k "RegexJoin" = Prelude.Just RegexJoin
-    | (Prelude.==) k "StringLiteral" = Prelude.Just StringLiteral
-    | (Prelude.==) k "StringLiteralEscape"
-    = Prelude.Just StringLiteralEscape
-    | (Prelude.==) k "StringLiteralSpecial"
-    = Prelude.Just StringLiteralSpecial
-    | (Prelude.==) k "StringLiteralKey" = Prelude.Just StringLiteralKey
-    | (Prelude.==) k "CharacterLiteral" = Prelude.Just CharacterLiteral
-    | (Prelude.==) k "NumericLiteral" = Prelude.Just NumericLiteral
-    | (Prelude.==) k "BooleanLiteral" = Prelude.Just BooleanLiteral
-    | (Prelude.==) k "Tag" = Prelude.Just Tag
-    | (Prelude.==) k "TagAttribute" = Prelude.Just TagAttribute
-    | (Prelude.==) k "TagDelimiter" = Prelude.Just TagDelimiter
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded SyntaxKind where
-  minBound = UnspecifiedSyntaxKind
-  maxBound = TagDelimiter
-instance Prelude.Enum SyntaxKind where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum SyntaxKind: " (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedSyntaxKind = 0
-  fromEnum Comment = 1
-  fromEnum PunctuationDelimiter = 2
-  fromEnum PunctuationBracket = 3
-  fromEnum Keyword = 4
-  fromEnum IdentifierOperator = 5
-  fromEnum Identifier = 6
-  fromEnum IdentifierBuiltin = 7
-  fromEnum IdentifierNull = 8
-  fromEnum IdentifierConstant = 9
-  fromEnum IdentifierMutableGlobal = 10
-  fromEnum IdentifierParameter = 11
-  fromEnum IdentifierLocal = 12
-  fromEnum IdentifierShadowed = 13
-  fromEnum IdentifierNamespace = 14
-  fromEnum IdentifierFunction = 15
-  fromEnum IdentifierFunctionDefinition = 16
-  fromEnum IdentifierMacro = 17
-  fromEnum IdentifierMacroDefinition = 18
-  fromEnum IdentifierType = 19
-  fromEnum IdentifierBuiltinType = 20
-  fromEnum IdentifierAttribute = 21
-  fromEnum RegexEscape = 22
-  fromEnum RegexRepeated = 23
-  fromEnum RegexWildcard = 24
-  fromEnum RegexDelimiter = 25
-  fromEnum RegexJoin = 26
-  fromEnum StringLiteral = 27
-  fromEnum StringLiteralEscape = 28
-  fromEnum StringLiteralSpecial = 29
-  fromEnum StringLiteralKey = 30
-  fromEnum CharacterLiteral = 31
-  fromEnum NumericLiteral = 32
-  fromEnum BooleanLiteral = 33
-  fromEnum Tag = 34
-  fromEnum TagAttribute = 35
-  fromEnum TagDelimiter = 36
-  fromEnum (SyntaxKind'Unrecognized (SyntaxKind'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ TagDelimiter
-    = Prelude.error
-        "SyntaxKind.succ: bad argument TagDelimiter. This value would be out of bounds."
-  succ UnspecifiedSyntaxKind = Comment
-  succ Comment = PunctuationDelimiter
-  succ PunctuationDelimiter = PunctuationBracket
-  succ PunctuationBracket = Keyword
-  succ Keyword = IdentifierOperator
-  succ IdentifierOperator = Identifier
-  succ Identifier = IdentifierBuiltin
-  succ IdentifierBuiltin = IdentifierNull
-  succ IdentifierNull = IdentifierConstant
-  succ IdentifierConstant = IdentifierMutableGlobal
-  succ IdentifierMutableGlobal = IdentifierParameter
-  succ IdentifierParameter = IdentifierLocal
-  succ IdentifierLocal = IdentifierShadowed
-  succ IdentifierShadowed = IdentifierNamespace
-  succ IdentifierNamespace = IdentifierFunction
-  succ IdentifierFunction = IdentifierFunctionDefinition
-  succ IdentifierFunctionDefinition = IdentifierMacro
-  succ IdentifierMacro = IdentifierMacroDefinition
-  succ IdentifierMacroDefinition = IdentifierType
-  succ IdentifierType = IdentifierBuiltinType
-  succ IdentifierBuiltinType = IdentifierAttribute
-  succ IdentifierAttribute = RegexEscape
-  succ RegexEscape = RegexRepeated
-  succ RegexRepeated = RegexWildcard
-  succ RegexWildcard = RegexDelimiter
-  succ RegexDelimiter = RegexJoin
-  succ RegexJoin = StringLiteral
-  succ StringLiteral = StringLiteralEscape
-  succ StringLiteralEscape = StringLiteralSpecial
-  succ StringLiteralSpecial = StringLiteralKey
-  succ StringLiteralKey = CharacterLiteral
-  succ CharacterLiteral = NumericLiteral
-  succ NumericLiteral = BooleanLiteral
-  succ BooleanLiteral = Tag
-  succ Tag = TagAttribute
-  succ TagAttribute = TagDelimiter
-  succ (SyntaxKind'Unrecognized _)
-    = Prelude.error "SyntaxKind.succ: bad argument: unrecognized value"
-  pred UnspecifiedSyntaxKind
-    = Prelude.error
-        "SyntaxKind.pred: bad argument UnspecifiedSyntaxKind. This value would be out of bounds."
-  pred Comment = UnspecifiedSyntaxKind
-  pred PunctuationDelimiter = Comment
-  pred PunctuationBracket = PunctuationDelimiter
-  pred Keyword = PunctuationBracket
-  pred IdentifierOperator = Keyword
-  pred Identifier = IdentifierOperator
-  pred IdentifierBuiltin = Identifier
-  pred IdentifierNull = IdentifierBuiltin
-  pred IdentifierConstant = IdentifierNull
-  pred IdentifierMutableGlobal = IdentifierConstant
-  pred IdentifierParameter = IdentifierMutableGlobal
-  pred IdentifierLocal = IdentifierParameter
-  pred IdentifierShadowed = IdentifierLocal
-  pred IdentifierNamespace = IdentifierShadowed
-  pred IdentifierFunction = IdentifierNamespace
-  pred IdentifierFunctionDefinition = IdentifierFunction
-  pred IdentifierMacro = IdentifierFunctionDefinition
-  pred IdentifierMacroDefinition = IdentifierMacro
-  pred IdentifierType = IdentifierMacroDefinition
-  pred IdentifierBuiltinType = IdentifierType
-  pred IdentifierAttribute = IdentifierBuiltinType
-  pred RegexEscape = IdentifierAttribute
-  pred RegexRepeated = RegexEscape
-  pred RegexWildcard = RegexRepeated
-  pred RegexDelimiter = RegexWildcard
-  pred RegexJoin = RegexDelimiter
-  pred StringLiteral = RegexJoin
-  pred StringLiteralEscape = StringLiteral
-  pred StringLiteralSpecial = StringLiteralEscape
-  pred StringLiteralKey = StringLiteralSpecial
-  pred CharacterLiteral = StringLiteralKey
-  pred NumericLiteral = CharacterLiteral
-  pred BooleanLiteral = NumericLiteral
-  pred Tag = BooleanLiteral
-  pred TagAttribute = Tag
-  pred TagDelimiter = TagAttribute
-  pred (SyntaxKind'Unrecognized _)
-    = Prelude.error "SyntaxKind.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault SyntaxKind where
-  fieldDefault = UnspecifiedSyntaxKind
-instance Control.DeepSeq.NFData SyntaxKind where
-  rnf x__ = Prelude.seq x__ ()
-pattern IdentifierKeyword :: SyntaxKind
-pattern IdentifierKeyword = Keyword
-pattern IdentifierModule :: SyntaxKind
-pattern IdentifierModule = IdentifierNamespace
-newtype TextEncoding'UnrecognizedValue
-  = TextEncoding'UnrecognizedValue Data.Int.Int32
-  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
-data TextEncoding
-  = UnspecifiedTextEncoding |
-    UTF8 |
-    UTF16 |
-    TextEncoding'Unrecognized !TextEncoding'UnrecognizedValue
-  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
-instance Data.ProtoLens.MessageEnum TextEncoding where
-  maybeToEnum 0 = Prelude.Just UnspecifiedTextEncoding
-  maybeToEnum 1 = Prelude.Just UTF8
-  maybeToEnum 2 = Prelude.Just UTF16
-  maybeToEnum k
-    = Prelude.Just
-        (TextEncoding'Unrecognized
-           (TextEncoding'UnrecognizedValue (Prelude.fromIntegral k)))
-  showEnum UnspecifiedTextEncoding = "UnspecifiedTextEncoding"
-  showEnum UTF8 = "UTF8"
-  showEnum UTF16 = "UTF16"
-  showEnum
-    (TextEncoding'Unrecognized (TextEncoding'UnrecognizedValue k))
-    = Prelude.show k
-  readEnum k
-    | (Prelude.==) k "UnspecifiedTextEncoding"
-    = Prelude.Just UnspecifiedTextEncoding
-    | (Prelude.==) k "UTF8" = Prelude.Just UTF8
-    | (Prelude.==) k "UTF16" = Prelude.Just UTF16
-    | Prelude.otherwise
-    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
-instance Prelude.Bounded TextEncoding where
-  minBound = UnspecifiedTextEncoding
-  maxBound = UTF16
-instance Prelude.Enum TextEncoding where
-  toEnum k__
-    = Prelude.maybe
-        (Prelude.error
-           ((Prelude.++)
-              "toEnum: unknown value for enum TextEncoding: "
-              (Prelude.show k__)))
-        Prelude.id (Data.ProtoLens.maybeToEnum k__)
-  fromEnum UnspecifiedTextEncoding = 0
-  fromEnum UTF8 = 1
-  fromEnum UTF16 = 2
-  fromEnum
-    (TextEncoding'Unrecognized (TextEncoding'UnrecognizedValue k))
-    = Prelude.fromIntegral k
-  succ UTF16
-    = Prelude.error
-        "TextEncoding.succ: bad argument UTF16. This value would be out of bounds."
-  succ UnspecifiedTextEncoding = UTF8
-  succ UTF8 = UTF16
-  succ (TextEncoding'Unrecognized _)
-    = Prelude.error
-        "TextEncoding.succ: bad argument: unrecognized value"
-  pred UnspecifiedTextEncoding
-    = Prelude.error
-        "TextEncoding.pred: bad argument UnspecifiedTextEncoding. This value would be out of bounds."
-  pred UTF8 = UnspecifiedTextEncoding
-  pred UTF16 = UTF8
-  pred (TextEncoding'Unrecognized _)
-    = Prelude.error
-        "TextEncoding.pred: bad argument: unrecognized value"
-  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 Data.ProtoLens.FieldDefault TextEncoding where
-  fieldDefault = UnspecifiedTextEncoding
-instance Control.DeepSeq.NFData TextEncoding where
-  rnf x__ = Prelude.seq x__ ()
-{- | Fields :
-     
-         * 'Proto.Scip_Fields.name' @:: Lens' ToolInfo Data.Text.Text@
-         * 'Proto.Scip_Fields.version' @:: Lens' ToolInfo Data.Text.Text@
-         * 'Proto.Scip_Fields.arguments' @:: Lens' ToolInfo [Data.Text.Text]@
-         * 'Proto.Scip_Fields.vec'arguments' @:: Lens' ToolInfo (Data.Vector.Vector Data.Text.Text)@ -}
-data ToolInfo
-  = ToolInfo'_constructor {_ToolInfo'name :: !Data.Text.Text,
-                           _ToolInfo'version :: !Data.Text.Text,
-                           _ToolInfo'arguments :: !(Data.Vector.Vector Data.Text.Text),
-                           _ToolInfo'_unknownFields :: !Data.ProtoLens.FieldSet}
-  deriving stock (Prelude.Eq, Prelude.Ord)
-instance Prelude.Show ToolInfo where
-  showsPrec _ __x __s
-    = Prelude.showChar
-        '{'
-        (Prelude.showString
-           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
-instance Data.ProtoLens.Field.HasField ToolInfo "name" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _ToolInfo'name (\ x__ y__ -> x__ {_ToolInfo'name = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField ToolInfo "version" Data.Text.Text where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _ToolInfo'version (\ x__ y__ -> x__ {_ToolInfo'version = y__}))
-        Prelude.id
-instance Data.ProtoLens.Field.HasField ToolInfo "arguments" [Data.Text.Text] where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _ToolInfo'arguments (\ x__ y__ -> x__ {_ToolInfo'arguments = y__}))
-        (Lens.Family2.Unchecked.lens
-           Data.Vector.Generic.toList
-           (\ _ y__ -> Data.Vector.Generic.fromList y__))
-instance Data.ProtoLens.Field.HasField ToolInfo "vec'arguments" (Data.Vector.Vector Data.Text.Text) where
-  fieldOf _
-    = (Prelude..)
-        (Lens.Family2.Unchecked.lens
-           _ToolInfo'arguments (\ x__ y__ -> x__ {_ToolInfo'arguments = y__}))
-        Prelude.id
-instance Data.ProtoLens.Message ToolInfo where
-  messageName _ = Data.Text.pack "scip.ToolInfo"
-  packedMessageDescriptor _
-    = "\n\
-      \\bToolInfo\DC2\DC2\n\
-      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\
-      \\aversion\CAN\STX \SOH(\tR\aversion\DC2\FS\n\
-      \\targuments\CAN\ETX \ETX(\tR\targuments"
-  packedFileDescriptor _ = packedFileDescriptor
-  fieldsByTag
-    = let
-        name__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "name"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
-              Data.ProtoLens.FieldDescriptor ToolInfo
-        version__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "version"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.PlainField
-                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
-              Data.ProtoLens.FieldDescriptor ToolInfo
-        arguments__field_descriptor
-          = Data.ProtoLens.FieldDescriptor
-              "arguments"
-              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
-                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
-              (Data.ProtoLens.RepeatedField
-                 Data.ProtoLens.Unpacked
-                 (Data.ProtoLens.Field.field @"arguments")) ::
-              Data.ProtoLens.FieldDescriptor ToolInfo
-      in
-        Data.Map.fromList
-          [(Data.ProtoLens.Tag 1, name__field_descriptor),
-           (Data.ProtoLens.Tag 2, version__field_descriptor),
-           (Data.ProtoLens.Tag 3, arguments__field_descriptor)]
-  unknownFields
-    = Lens.Family2.Unchecked.lens
-        _ToolInfo'_unknownFields
-        (\ x__ y__ -> x__ {_ToolInfo'_unknownFields = y__})
-  defMessage
-    = ToolInfo'_constructor
-        {_ToolInfo'name = Data.ProtoLens.fieldDefault,
-         _ToolInfo'version = Data.ProtoLens.fieldDefault,
-         _ToolInfo'arguments = Data.Vector.Generic.empty,
-         _ToolInfo'_unknownFields = []}
-  parseMessage
-    = let
-        loop ::
-          ToolInfo
-          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
-             -> Data.ProtoLens.Encoding.Bytes.Parser ToolInfo
-        loop x mutable'arguments
-          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
-               if end then
-                   do frozen'arguments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
-                                               mutable'arguments)
-                      (let missing = []
-                       in
-                         if Prelude.null missing then
-                             Prelude.return ()
-                         else
-                             Prelude.fail
-                               ((Prelude.++)
-                                  "Missing required fields: "
-                                  (Prelude.show (missing :: [Prelude.String]))))
-                      Prelude.return
-                        (Lens.Family2.over
-                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
-                           (Lens.Family2.set
-                              (Data.ProtoLens.Field.field @"vec'arguments") frozen'arguments x))
-               else
-                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                      case tag of
-                        10
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "name"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
-                                  mutable'arguments
-                        18
-                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                           Data.ProtoLens.Encoding.Bytes.getText
-                                             (Prelude.fromIntegral len))
-                                       "version"
-                                loop
-                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
-                                  mutable'arguments
-                        26
-                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
-                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
-                                            Data.ProtoLens.Encoding.Bytes.getText
-                                              (Prelude.fromIntegral len))
-                                        "arguments"
-                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                       (Data.ProtoLens.Encoding.Growing.append mutable'arguments y)
-                                loop x v
-                        wire
-                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
-                                        wire
-                                loop
-                                  (Lens.Family2.over
-                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
-                                  mutable'arguments
-      in
-        (Data.ProtoLens.Encoding.Bytes.<?>)
-          (do mutable'arguments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
-                                     Data.ProtoLens.Encoding.Growing.new
-              loop Data.ProtoLens.defMessage mutable'arguments)
-          "ToolInfo"
-  buildMessage
-    = \ _x
-        -> (Data.Monoid.<>)
-             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
-              in
-                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                    Data.Monoid.mempty
-                else
-                    (Data.Monoid.<>)
-                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
-                      ((Prelude..)
-                         (\ bs
-                            -> (Data.Monoid.<>)
-                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                         Data.Text.Encoding.encodeUtf8 _v))
-             ((Data.Monoid.<>)
-                (let
-                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
-                 in
-                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
-                       Data.Monoid.mempty
-                   else
-                       (Data.Monoid.<>)
-                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
-                         ((Prelude..)
-                            (\ bs
-                               -> (Data.Monoid.<>)
-                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                            Data.Text.Encoding.encodeUtf8 _v))
-                ((Data.Monoid.<>)
-                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
-                      (\ _v
-                         -> (Data.Monoid.<>)
-                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
-                              ((Prelude..)
-                                 (\ bs
-                                    -> (Data.Monoid.<>)
-                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
-                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
-                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
-                                 Data.Text.Encoding.encodeUtf8 _v))
-                      (Lens.Family2.view
-                         (Data.ProtoLens.Field.field @"vec'arguments") _x))
-                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
-                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
-instance Control.DeepSeq.NFData ToolInfo where
-  rnf
-    = \ x__
-        -> Control.DeepSeq.deepseq
-             (_ToolInfo'_unknownFields x__)
-             (Control.DeepSeq.deepseq
-                (_ToolInfo'name x__)
-                (Control.DeepSeq.deepseq
-                   (_ToolInfo'version x__)
-                   (Control.DeepSeq.deepseq (_ToolInfo'arguments x__) ())))
-packedFileDescriptor :: Data.ByteString.ByteString
-packedFileDescriptor
-  = "\n\
-    \\n\
-    \scip.proto\DC2\EOTscip\"\165\SOH\n\
-    \\ENQIndex\DC2*\n\
-    \\bmetadata\CAN\SOH \SOH(\v2\SO.scip.MetadataR\bmetadata\DC2,\n\
-    \\tdocuments\CAN\STX \ETX(\v2\SO.scip.DocumentR\tdocuments\DC2B\n\
-    \\DLEexternal_symbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols\"\213\SOH\n\
-    \\bMetadata\DC2/\n\
-    \\aversion\CAN\SOH \SOH(\SO2\NAK.scip.ProtocolVersionR\aversion\DC2+\n\
-    \\ttool_info\CAN\STX \SOH(\v2\SO.scip.ToolInfoR\btoolInfo\DC2!\n\
-    \\fproject_root\CAN\ETX \SOH(\tR\vprojectRoot\DC2H\n\
-    \\SYNtext_document_encoding\CAN\EOT \SOH(\SO2\DC2.scip.TextEncodingR\DC4textDocumentEncoding\"V\n\
-    \\bToolInfo\DC2\DC2\n\
-    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\
-    \\aversion\CAN\STX \SOH(\tR\aversion\DC2\FS\n\
-    \\targuments\CAN\ETX \ETX(\tR\targuments\"\139\STX\n\
-    \\bDocument\DC2\SUB\n\
-    \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2#\n\
-    \\rrelative_path\CAN\SOH \SOH(\tR\frelativePath\DC22\n\
-    \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\
-    \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\
-    \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\
-    \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding\"}\n\
-    \\ACKSymbol\DC2\SYN\n\
-    \\ACKscheme\CAN\SOH \SOH(\tR\ACKscheme\DC2'\n\
-    \\apackage\CAN\STX \SOH(\v2\r.scip.PackageR\apackage\DC22\n\
-    \\vdescriptors\CAN\ETX \ETX(\v2\DLE.scip.DescriptorR\vdescriptors\"Q\n\
-    \\aPackage\DC2\CAN\n\
-    \\amanager\CAN\SOH \SOH(\tR\amanager\DC2\DC2\n\
-    \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\CAN\n\
-    \\aversion\CAN\ETX \SOH(\tR\aversion\"\159\STX\n\
-    \\n\
-    \Descriptor\DC2\DC2\n\
-    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2$\n\
-    \\rdisambiguator\CAN\STX \SOH(\tR\rdisambiguator\DC2/\n\
-    \\ACKsuffix\CAN\ETX \SOH(\SO2\ETB.scip.Descriptor.SuffixR\ACKsuffix\"\165\SOH\n\
-    \\ACKSuffix\DC2\NAK\n\
-    \\DC1UnspecifiedSuffix\DLE\NUL\DC2\r\n\
-    \\tNamespace\DLE\SOH\DC2\SI\n\
-    \\aPackage\DLE\SOH\SUB\STX\b\SOH\DC2\b\n\
-    \\EOTType\DLE\STX\DC2\b\n\
-    \\EOTTerm\DLE\ETX\DC2\n\
-    \\n\
-    \\ACKMethod\DLE\EOT\DC2\DC1\n\
-    \\rTypeParameter\DLE\ENQ\DC2\r\n\
-    \\tParameter\DLE\ACK\DC2\b\n\
-    \\EOTMeta\DLE\a\DC2\t\n\
-    \\ENQLocal\DLE\b\DC2\t\n\
-    \\ENQMacro\DLE\t\SUB\STX\DLE\SOH\"\129\SOH\n\
-    \\tSignature\DC2\SUB\n\
-    \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2\DC2\n\
-    \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC22\n\
-    \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrencesJ\EOT\b\SOH\DLE\STXJ\EOT\b\ETX\DLE\EOTJ\EOT\b\ACK\DLE\a\"\211\f\n\
-    \\DC1SymbolInformation\DC2\SYN\n\
-    \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2$\n\
-    \\rdocumentation\CAN\ETX \ETX(\tR\rdocumentation\DC28\n\
-    \\rrelationships\CAN\EOT \ETX(\v2\DC2.scip.RelationshipR\rrelationships\DC20\n\
-    \\EOTkind\CAN\ENQ \SOH(\SO2\FS.scip.SymbolInformation.KindR\EOTkind\DC2!\n\
-    \\fdisplay_name\CAN\ACK \SOH(\tR\vdisplayName\DC2H\n\
-    \\ETBsignature_documentation\CAN\a \SOH(\v2\SI.scip.SignatureR\SYNsignatureDocumentation\DC2)\n\
-    \\DLEenclosing_symbol\CAN\b \SOH(\tR\SIenclosingSymbol\"\251\t\n\
-    \\EOTKind\DC2\DC3\n\
-    \\SIUnspecifiedKind\DLE\NUL\DC2\DC2\n\
-    \\SOAbstractMethod\DLEB\DC2\f\n\
-    \\bAccessor\DLEH\DC2\t\n\
-    \\ENQArray\DLE\SOH\DC2\r\n\
-    \\tAssertion\DLE\STX\DC2\DC2\n\
-    \\SOAssociatedType\DLE\ETX\DC2\r\n\
-    \\tAttribute\DLE\EOT\DC2\t\n\
-    \\ENQAxiom\DLE\ENQ\DC2\v\n\
-    \\aBoolean\DLE\ACK\DC2\t\n\
-    \\ENQClass\DLE\a\DC2\v\n\
-    \\aConcept\DLEV\DC2\f\n\
-    \\bConstant\DLE\b\DC2\SI\n\
-    \\vConstructor\DLE\t\DC2\f\n\
-    \\bContract\DLE>\DC2\SO\n\
-    \\n\
-    \DataFamily\DLE\n\
-    \\DC2\f\n\
-    \\bDelegate\DLEI\DC2\b\n\
-    \\EOTEnum\DLE\v\DC2\SO\n\
-    \\n\
-    \EnumMember\DLE\f\DC2\t\n\
-    \\ENQError\DLE?\DC2\t\n\
-    \\ENQEvent\DLE\r\DC2\r\n\
-    \\tExtension\DLET\DC2\b\n\
-    \\EOTFact\DLE\SO\DC2\t\n\
-    \\ENQField\DLE\SI\DC2\b\n\
-    \\EOTFile\DLE\DLE\DC2\f\n\
-    \\bFunction\DLE\DC1\DC2\n\
-    \\n\
-    \\ACKGetter\DLE\DC2\DC2\v\n\
-    \\aGrammar\DLE\DC3\DC2\f\n\
-    \\bInstance\DLE\DC4\DC2\r\n\
-    \\tInterface\DLE\NAK\DC2\a\n\
-    \\ETXKey\DLE\SYN\DC2\b\n\
-    \\EOTLang\DLE\ETB\DC2\t\n\
-    \\ENQLemma\DLE\CAN\DC2\v\n\
-    \\aLibrary\DLE@\DC2\t\n\
-    \\ENQMacro\DLE\EM\DC2\n\
-    \\n\
-    \\ACKMethod\DLE\SUB\DC2\SI\n\
-    \\vMethodAlias\DLEJ\DC2\DC2\n\
-    \\SOMethodReceiver\DLE\ESC\DC2\ETB\n\
-    \\DC3MethodSpecification\DLEC\DC2\v\n\
-    \\aMessage\DLE\FS\DC2\t\n\
-    \\ENQMixin\DLEU\DC2\f\n\
-    \\bModifier\DLEA\DC2\n\
-    \\n\
-    \\ACKModule\DLE\GS\DC2\r\n\
-    \\tNamespace\DLE\RS\DC2\b\n\
-    \\EOTNull\DLE\US\DC2\n\
-    \\n\
-    \\ACKNumber\DLE \DC2\n\
-    \\n\
-    \\ACKObject\DLE!\DC2\f\n\
-    \\bOperator\DLE\"\DC2\v\n\
-    \\aPackage\DLE#\DC2\DC1\n\
-    \\rPackageObject\DLE$\DC2\r\n\
-    \\tParameter\DLE%\DC2\DC2\n\
-    \\SOParameterLabel\DLE&\DC2\v\n\
-    \\aPattern\DLE'\DC2\r\n\
-    \\tPredicate\DLE(\DC2\f\n\
-    \\bProperty\DLE)\DC2\f\n\
-    \\bProtocol\DLE*\DC2\DC2\n\
-    \\SOProtocolMethod\DLED\DC2\NAK\n\
-    \\DC1PureVirtualMethod\DLEE\DC2\SI\n\
-    \\vQuasiquoter\DLE+\DC2\DC1\n\
-    \\rSelfParameter\DLE,\DC2\n\
-    \\n\
-    \\ACKSetter\DLE-\DC2\r\n\
-    \\tSignature\DLE.\DC2\DC2\n\
-    \\SOSingletonClass\DLEK\DC2\DC3\n\
-    \\SISingletonMethod\DLEL\DC2\DC4\n\
-    \\DLEStaticDataMember\DLEM\DC2\SI\n\
-    \\vStaticEvent\DLEN\DC2\SI\n\
-    \\vStaticField\DLEO\DC2\DLE\n\
-    \\fStaticMethod\DLEP\DC2\DC2\n\
-    \\SOStaticProperty\DLEQ\DC2\DC2\n\
-    \\SOStaticVariable\DLER\DC2\n\
-    \\n\
-    \\ACKString\DLE0\DC2\n\
-    \\n\
-    \\ACKStruct\DLE1\DC2\r\n\
-    \\tSubscript\DLE/\DC2\n\
-    \\n\
-    \\ACKTactic\DLE2\DC2\v\n\
-    \\aTheorem\DLE3\DC2\DC1\n\
-    \\rThisParameter\DLE4\DC2\t\n\
-    \\ENQTrait\DLE5\DC2\SI\n\
-    \\vTraitMethod\DLEF\DC2\b\n\
-    \\EOTType\DLE6\DC2\r\n\
-    \\tTypeAlias\DLE7\DC2\r\n\
-    \\tTypeClass\DLE8\DC2\DC3\n\
-    \\SITypeClassMethod\DLEG\DC2\SO\n\
-    \\n\
-    \TypeFamily\DLE9\DC2\DC1\n\
-    \\rTypeParameter\DLE:\DC2\t\n\
-    \\ENQUnion\DLE;\DC2\t\n\
-    \\ENQValue\DLE<\DC2\f\n\
-    \\bVariable\DLE=\"\201\SOH\n\
-    \\fRelationship\DC2\SYN\n\
-    \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2!\n\
-    \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\
-    \\DC1is_implementation\CAN\ETX \SOH(\bR\DLEisImplementation\DC2,\n\
-    \\DC2is_type_definition\CAN\EOT \SOH(\bR\DLEisTypeDefinition\DC2#\n\
-    \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition\"\164\STX\n\
-    \\n\
-    \Occurrence\DC2\DC4\n\
-    \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrange\DC2\SYN\n\
-    \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\
-    \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\
-    \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\
-    \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\
-    \syntaxKind\DC22\n\
-    \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2'\n\
-    \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRange\"\167\SOH\n\
-    \\n\
-    \Diagnostic\DC2*\n\
-    \\bseverity\CAN\SOH \SOH(\SO2\SO.scip.SeverityR\bseverity\DC2\DC2\n\
-    \\EOTcode\CAN\STX \SOH(\tR\EOTcode\DC2\CAN\n\
-    \\amessage\CAN\ETX \SOH(\tR\amessage\DC2\SYN\n\
-    \\ACKsource\CAN\EOT \SOH(\tR\ACKsource\DC2'\n\
-    \\EOTtags\CAN\ENQ \ETX(\SO2\DC3.scip.DiagnosticTagR\EOTtags*1\n\
-    \\SIProtocolVersion\DC2\RS\n\
-    \\SUBUnspecifiedProtocolVersion\DLE\NUL*@\n\
-    \\fTextEncoding\DC2\ESC\n\
-    \\ETBUnspecifiedTextEncoding\DLE\NUL\DC2\b\n\
-    \\EOTUTF8\DLE\SOH\DC2\t\n\
-    \\ENQUTF16\DLE\STX*\164\SOH\n\
-    \\DLEPositionEncoding\DC2\US\n\
-    \\ESCUnspecifiedPositionEncoding\DLE\NUL\DC2#\n\
-    \\USUTF8CodeUnitOffsetFromLineStart\DLE\SOH\DC2$\n\
-    \ UTF16CodeUnitOffsetFromLineStart\DLE\STX\DC2$\n\
-    \ UTF32CodeUnitOffsetFromLineStart\DLE\ETX*\148\SOH\n\
-    \\n\
-    \SymbolRole\DC2\EM\n\
-    \\NAKUnspecifiedSymbolRole\DLE\NUL\DC2\SO\n\
-    \\n\
-    \Definition\DLE\SOH\DC2\n\
-    \\n\
-    \\ACKImport\DLE\STX\DC2\SI\n\
-    \\vWriteAccess\DLE\EOT\DC2\SO\n\
-    \\n\
-    \ReadAccess\DLE\b\DC2\r\n\
-    \\tGenerated\DLE\DLE\DC2\b\n\
-    \\EOTTest\DLE \DC2\NAK\n\
-    \\DC1ForwardDefinition\DLE@*\234\ACK\n\
-    \\n\
-    \SyntaxKind\DC2\EM\n\
-    \\NAKUnspecifiedSyntaxKind\DLE\NUL\DC2\v\n\
-    \\aComment\DLE\SOH\DC2\CAN\n\
-    \\DC4PunctuationDelimiter\DLE\STX\DC2\SYN\n\
-    \\DC2PunctuationBracket\DLE\ETX\DC2\v\n\
-    \\aKeyword\DLE\EOT\DC2\EM\n\
-    \\DC1IdentifierKeyword\DLE\EOT\SUB\STX\b\SOH\DC2\SYN\n\
-    \\DC2IdentifierOperator\DLE\ENQ\DC2\SO\n\
-    \\n\
-    \Identifier\DLE\ACK\DC2\NAK\n\
-    \\DC1IdentifierBuiltin\DLE\a\DC2\DC2\n\
-    \\SOIdentifierNull\DLE\b\DC2\SYN\n\
-    \\DC2IdentifierConstant\DLE\t\DC2\ESC\n\
-    \\ETBIdentifierMutableGlobal\DLE\n\
-    \\DC2\ETB\n\
-    \\DC3IdentifierParameter\DLE\v\DC2\DC3\n\
-    \\SIIdentifierLocal\DLE\f\DC2\SYN\n\
-    \\DC2IdentifierShadowed\DLE\r\DC2\ETB\n\
-    \\DC3IdentifierNamespace\DLE\SO\DC2\CAN\n\
-    \\DLEIdentifierModule\DLE\SO\SUB\STX\b\SOH\DC2\SYN\n\
-    \\DC2IdentifierFunction\DLE\SI\DC2 \n\
-    \\FSIdentifierFunctionDefinition\DLE\DLE\DC2\DC3\n\
-    \\SIIdentifierMacro\DLE\DC1\DC2\GS\n\
-    \\EMIdentifierMacroDefinition\DLE\DC2\DC2\DC2\n\
-    \\SOIdentifierType\DLE\DC3\DC2\EM\n\
-    \\NAKIdentifierBuiltinType\DLE\DC4\DC2\ETB\n\
-    \\DC3IdentifierAttribute\DLE\NAK\DC2\SI\n\
-    \\vRegexEscape\DLE\SYN\DC2\DC1\n\
-    \\rRegexRepeated\DLE\ETB\DC2\DC1\n\
-    \\rRegexWildcard\DLE\CAN\DC2\DC2\n\
-    \\SORegexDelimiter\DLE\EM\DC2\r\n\
-    \\tRegexJoin\DLE\SUB\DC2\DC1\n\
-    \\rStringLiteral\DLE\ESC\DC2\ETB\n\
-    \\DC3StringLiteralEscape\DLE\FS\DC2\CAN\n\
-    \\DC4StringLiteralSpecial\DLE\GS\DC2\DC4\n\
-    \\DLEStringLiteralKey\DLE\RS\DC2\DC4\n\
-    \\DLECharacterLiteral\DLE\US\DC2\DC2\n\
-    \\SONumericLiteral\DLE \DC2\DC2\n\
-    \\SOBooleanLiteral\DLE!\DC2\a\n\
-    \\ETXTag\DLE\"\DC2\DLE\n\
-    \\fTagAttribute\DLE#\DC2\DLE\n\
-    \\fTagDelimiter\DLE$\SUB\STX\DLE\SOH*V\n\
-    \\bSeverity\DC2\ETB\n\
-    \\DC3UnspecifiedSeverity\DLE\NUL\DC2\t\n\
-    \\ENQError\DLE\SOH\DC2\v\n\
-    \\aWarning\DLE\STX\DC2\SI\n\
-    \\vInformation\DLE\ETX\DC2\b\n\
-    \\EOTHint\DLE\EOT*N\n\
-    \\rDiagnosticTag\DC2\FS\n\
-    \\CANUnspecifiedDiagnosticTag\DLE\NUL\DC2\SI\n\
-    \\vUnnecessary\DLE\SOH\DC2\SO\n\
-    \\n\
-    \Deprecated\DLE\STX*\155\n\
-    \\n\
-    \\bLanguage\DC2\ETB\n\
-    \\DC3UnspecifiedLanguage\DLE\NUL\DC2\b\n\
-    \\EOTABAP\DLE<\DC2\b\n\
-    \\EOTApex\DLE`\DC2\a\n\
-    \\ETXAPL\DLE1\DC2\a\n\
-    \\ETXAda\DLE'\DC2\b\n\
-    \\EOTAgda\DLE-\DC2\f\n\
-    \\bAsciiDoc\DLEV\DC2\f\n\
-    \\bAssembly\DLE:\DC2\a\n\
-    \\ETXAwk\DLEB\DC2\a\n\
-    \\ETXBat\DLED\DC2\n\
-    \\n\
-    \\ACKBibTeX\DLEQ\DC2\ENQ\n\
-    \\SOHC\DLE\"\DC2\t\n\
-    \\ENQCOBOL\DLE;\DC2\a\n\
-    \\ETXCPP\DLE#\DC2\a\n\
-    \\ETXCSS\DLE\SUB\DC2\n\
-    \\n\
-    \\ACKCSharp\DLE\SOH\DC2\v\n\
-    \\aClojure\DLE\b\DC2\DLE\n\
-    \\fCoffeescript\DLE\NAK\DC2\SO\n\
-    \\n\
-    \CommonLisp\DLE\t\DC2\a\n\
-    \\ETXCoq\DLE/\DC2\b\n\
-    \\EOTCUDA\DLEa\DC2\b\n\
-    \\EOTDart\DLE\ETX\DC2\n\
-    \\n\
-    \\ACKDelphi\DLE9\DC2\b\n\
-    \\EOTDiff\DLEX\DC2\SO\n\
-    \\n\
-    \Dockerfile\DLEP\DC2\n\
-    \\n\
-    \\ACKDyalog\DLE2\DC2\n\
-    \\n\
-    \\ACKElixir\DLE\DC1\DC2\n\
-    \\n\
-    \\ACKErlang\DLE\DC2\DC2\n\
-    \\n\
-    \\ACKFSharp\DLE*\DC2\b\n\
-    \\EOTFish\DLEA\DC2\b\n\
-    \\EOTFlow\DLE\CAN\DC2\v\n\
-    \\aFortran\DLE8\DC2\SO\n\
-    \\n\
-    \Git_Commit\DLE[\DC2\SO\n\
-    \\n\
-    \Git_Config\DLEY\DC2\SO\n\
-    \\n\
-    \Git_Rebase\DLE\\\DC2\ACK\n\
-    \\STXGo\DLE!\DC2\v\n\
-    \\aGraphQL\DLEb\DC2\n\
-    \\n\
-    \\ACKGroovy\DLE\a\DC2\b\n\
-    \\EOTHTML\DLE\RS\DC2\b\n\
-    \\EOTHack\DLE\DC4\DC2\SO\n\
-    \\n\
-    \Handlebars\DLEZ\DC2\v\n\
-    \\aHaskell\DLE,\DC2\t\n\
-    \\ENQIdris\DLE.\DC2\a\n\
-    \\ETXIni\DLEH\DC2\ENQ\n\
-    \\SOHJ\DLE3\DC2\b\n\
-    \\EOTJSON\DLEK\DC2\b\n\
-    \\EOTJava\DLE\ACK\DC2\SO\n\
-    \\n\
-    \JavaScript\DLE\SYN\DC2\DC3\n\
-    \\SIJavaScriptReact\DLE]\DC2\v\n\
-    \\aJsonnet\DLEL\DC2\t\n\
-    \\ENQJulia\DLE7\DC2\f\n\
-    \\bJustfile\DLEm\DC2\n\
-    \\n\
-    \\ACKKotlin\DLE\EOT\DC2\t\n\
-    \\ENQLaTeX\DLES\DC2\b\n\
-    \\EOTLean\DLE0\DC2\b\n\
-    \\EOTLess\DLE\ESC\DC2\a\n\
-    \\ETXLua\DLE\f\DC2\b\n\
-    \\EOTLuau\DLEl\DC2\f\n\
-    \\bMakefile\DLEO\DC2\f\n\
-    \\bMarkdown\DLET\DC2\n\
-    \\n\
-    \\ACKMatlab\DLE4\DC2\n\
-    \\n\
-    \\ACKNickel\DLEn\DC2\a\n\
-    \\ETXNix\DLEM\DC2\t\n\
-    \\ENQOCaml\DLE)\DC2\SI\n\
-    \\vObjective_C\DLE$\DC2\DC1\n\
-    \\rObjective_CPP\DLE%\DC2\n\
-    \\n\
-    \\ACKPascal\DLEc\DC2\a\n\
-    \\ETXPHP\DLE\DC3\DC2\t\n\
-    \\ENQPLSQL\DLEF\DC2\b\n\
-    \\EOTPerl\DLE\r\DC2\SO\n\
-    \\n\
-    \PowerShell\DLEC\DC2\n\
-    \\n\
-    \\ACKProlog\DLEG\DC2\f\n\
-    \\bProtobuf\DLEd\DC2\n\
-    \\n\
-    \\ACKPython\DLE\SI\DC2\ENQ\n\
-    \\SOHR\DLE6\DC2\n\
-    \\n\
-    \\ACKRacket\DLE\v\DC2\b\n\
-    \\EOTRaku\DLE\SO\DC2\t\n\
-    \\ENQRazor\DLE>\DC2\t\n\
-    \\ENQRepro\DLEf\DC2\b\n\
-    \\EOTReST\DLEU\DC2\b\n\
-    \\EOTRuby\DLE\DLE\DC2\b\n\
-    \\EOTRust\DLE(\DC2\a\n\
-    \\ETXSAS\DLE=\DC2\b\n\
-    \\EOTSCSS\DLE\GS\DC2\a\n\
-    \\ETXSML\DLE+\DC2\a\n\
-    \\ETXSQL\DLEE\DC2\b\n\
-    \\EOTSass\DLE\FS\DC2\t\n\
-    \\ENQScala\DLE\ENQ\DC2\n\
-    \\n\
-    \\ACKScheme\DLE\n\
-    \\DC2\SI\n\
-    \\vShellScript\DLE@\DC2\v\n\
-    \\aSkylark\DLEN\DC2\t\n\
-    \\ENQSlang\DLEk\DC2\f\n\
-    \\bSolidity\DLE_\DC2\n\
-    \\n\
-    \\ACKSvelte\DLEj\DC2\t\n\
-    \\ENQSwift\DLE\STX\DC2\a\n\
-    \\ETXTcl\DLEe\DC2\b\n\
-    \\EOTTOML\DLEI\DC2\a\n\
-    \\ETXTeX\DLER\DC2\n\
-    \\n\
-    \\ACKThrift\DLEg\DC2\SO\n\
-    \\n\
-    \TypeScript\DLE\ETB\DC2\DC3\n\
-    \\SITypeScriptReact\DLE^\DC2\v\n\
-    \\aVerilog\DLEh\DC2\b\n\
-    \\EOTVHDL\DLEi\DC2\SI\n\
-    \\vVisualBasic\DLE?\DC2\a\n\
-    \\ETXVue\DLE\EM\DC2\v\n\
-    \\aWolfram\DLE5\DC2\a\n\
-    \\ETXXML\DLE\US\DC2\a\n\
-    \\ETXXSL\DLE \DC2\b\n\
-    \\EOTYAML\DLEJ\DC2\a\n\
-    \\ETXZig\DLE&BN\n\
-    \\DC2org.scip_code.scipB\tScipProtoP\SOHZ+github.com/scip-code/scip/bindings/go/scip/J\158\191\STX\n\
-    \\a\DC2\ENQ\n\
-    \\NUL\131\a\SOH\n\
-    \\130\EOT\n\
-    \\SOH\f\DC2\ETX\n\
-    \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\
-    \ source code or software artifact. Complementary information can be merged\n\
-    \ together from multiple sources to provide a unified code intelligence\n\
-    \ experience.\n\
-    \\n\
-    \ Programs producing a file of this format is an \"indexer\" and may operate\n\
-    \ somewhere on the spectrum between precision, such as indexes produced by\n\
-    \ compiler-backed indexers, and heurstics, such as indexes produced by local\n\
-    \ syntax-directed analysis for scope rules.\n\
-    \\n\
-    \\b\n\
-    \\SOH\STX\DC2\ETX\f\NUL\r\n\
-    \\b\n\
-    \\SOH\b\DC2\ETX\SO\NULB\n\
-    \\t\n\
-    \\STX\b\v\DC2\ETX\SO\NULB\n\
-    \\b\n\
-    \\SOH\b\DC2\ETX\SI\NUL\"\n\
-    \\t\n\
-    \\STX\b\n\
-    \\DC2\ETX\SI\NUL\"\n\
-    \\b\n\
-    \\SOH\b\DC2\ETX\DLE\NUL*\n\
-    \\t\n\
-    \\STX\b\b\DC2\ETX\DLE\NUL*\n\
-    \\b\n\
-    \\SOH\b\DC2\ETX\DC1\NUL+\n\
-    \\t\n\
-    \\STX\b\SOH\DC2\ETX\DC1\NUL+\n\
-    \\208\ETX\n\
-    \\STX\EOT\NUL\DC2\EOT\EM\NUL&\SOH\SUB\195\ETX Index represents a complete SCIP index for a workspace this is rooted at a\n\
-    \ single directory. An Index message payload can have a large memory footprint\n\
-    \ and it's therefore recommended to emit and consume an Index payload one field\n\
-    \ value at a time. To permit streaming consumption of an Index payload, the\n\
-    \ `metadata` field must appear at the start of the stream and must only appear\n\
-    \ once in the stream. Other field values may appear in any order.\n\
-    \\n\
-    \\n\
-    \\n\
-    \\ETX\EOT\NUL\SOH\DC2\ETX\EM\b\r\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX\ESC\STX\n\
-    \\n\
-    \)\n\
-    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\ESC\STX\CAN\SUB\FS Metadata about this index.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\ESC\v\DC3\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\ESC\SYN\ETB\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\SOH\EOT\DC2\ETX\GS\STX\n\
-    \\n\
-    \3\n\
-    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\GS\STX\"\SUB& Documents that belong to this index.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\SOH\ACK\DC2\ETX\GS\v\DC3\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\GS\DC4\GS\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\GS !\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX#\STX\n\
-    \\n\
-    \\246\ETX\n\
-    \\EOT\EOT\NUL\STX\STX\DC2\ETX#\STX2\SUB\233\STX (optional) Symbols that are referenced from this index but are defined in\n\
-    \ an external package (a separate `Index` message). Leave this field empty\n\
-    \ if you assume the external package will get indexed separately. If the\n\
-    \ external package won't get indexed for some reason then you can use this\n\
-    \ field to provide hover documentation for those external symbols.\n\
-    \\"} IMPORTANT: When adding a new field to `Index` here, add a matching\n\
-    \ function in `IndexVisitor` and update `ParseStreaming`.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\STX\ACK\DC2\ETX#\v\FS\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX#\GS-\n\
-    \\f\n\
-    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX#01\n\
-    \\n\
-    \\n\
-    \\STX\EOT\SOH\DC2\EOT(\NUL5\SOH\n\
-    \\n\
-    \\n\
-    \\ETX\EOT\SOH\SOH\DC2\ETX(\b\DLE\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX*\STX\DC1\n\
-    \N\n\
-    \\EOT\EOT\SOH\STX\NUL\DC2\ETX*\STX\RS\SUBA Which version of this protocol was used to generate this index?\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX*\DC2\EM\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX*\FS\GS\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX,\STX\n\
-    \\n\
-    \C\n\
-    \\EOT\EOT\SOH\STX\SOH\DC2\ETX,\STX\EM\SUB6 Information about the tool that produced this index.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX,\v\DC4\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX,\ETB\CAN\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETX0\STX\b\n\
-    \\162\SOH\n\
-    \\EOT\EOT\SOH\STX\STX\DC2\ETX0\STX\SUB\SUB\148\SOH URI-encoded absolute path to the root directory of this index. All\n\
-    \ documents in this index must appear in a subdirectory of this root\n\
-    \ directory.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX0\t\NAK\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX0\CAN\EM\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX4\STX\SO\n\
-    \\224\SOH\n\
-    \\EOT\EOT\SOH\STX\ETX\DC2\ETX4\STX*\SUB\210\SOH Text encoding of the source files on disk that are referenced from\n\
-    \ `Document.relative_path`. This value is unrelated to the `Document.text`\n\
-    \ field, which is a Protobuf string and hence must be UTF-8 encoded.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX4\SI%\n\
-    \\f\n\
-    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX4()\n\
-    \\n\
-    \\n\
-    \\STX\ENQ\NUL\DC2\EOT7\NUL9\SOH\n\
-    \\n\
-    \\n\
-    \\ETX\ENQ\NUL\SOH\DC2\ETX7\ENQ\DC4\n\
-    \\f\n\
-    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX8\STX\FS\n\
-    \\v\n\
-    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX8\STX!\n\
-    \\f\n\
-    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX8\US \n\
-    \\n\
-    \\n\
-    \\STX\ENQ\SOH\DC2\EOT;\NUL?\SOH\n\
-    \\n\
-    \\n\
-    \\ETX\ENQ\SOH\SOH\DC2\ETX;\ENQ\DC1\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETX<\STX\EM\n\
-    \\v\n\
-    \\EOT\ENQ\SOH\STX\NUL\DC2\ETX<\STX\RS\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETX<\FS\GS\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETX=\STX\ACK\n\
-    \\v\n\
-    \\EOT\ENQ\SOH\STX\SOH\DC2\ETX=\STX\v\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETX=\t\n\
-    \\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETX>\STX\a\n\
-    \\v\n\
-    \\EOT\ENQ\SOH\STX\STX\DC2\ETX>\STX\f\n\
-    \\f\n\
-    \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETX>\n\
-    \\v\n\
-    \\n\
-    \\n\
-    \\STX\EOT\STX\DC2\EOTA\NULH\SOH\n\
-    \\n\
-    \\n\
-    \\ETX\EOT\STX\SOH\DC2\ETXA\b\DLE\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETXC\STX\b\n\
-    \<\n\
-    \\EOT\EOT\STX\STX\NUL\DC2\ETXC\STX\DC2\SUB/ Name of the indexer that produced this index.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETXC\t\r\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETXC\DLE\DC1\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETXE\STX\b\n\
-    \?\n\
-    \\EOT\EOT\STX\STX\SOH\DC2\ETXE\STX\NAK\SUB2 Version of the indexer that produced this index.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETXE\t\DLE\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETXE\DC3\DC4\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETXG\STX\n\
-    \\n\
-    \L\n\
-    \\EOT\EOT\STX\STX\STX\DC2\ETXG\STX \SUB? Command-line arguments that were used to invoke this indexer.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETXG\v\DC1\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETXG\DC2\ESC\n\
-    \\f\n\
-    \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETXG\RS\US\n\
-    \H\n\
-    \\STX\EOT\ETX\DC2\EOTK\NULv\SOH\SUB< Document defines the metadata about a source file on disk.\n\
-    \\n\
-    \\n\
-    \\n\
-    \\ETX\EOT\ETX\SOH\DC2\ETXK\b\DLE\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETXP\STX\b\n\
-    \\165\STX\n\
-    \\EOT\EOT\ETX\STX\NUL\DC2\ETXP\STX\SYN\SUB\151\STX The string ID for the programming language this file is written in.\n\
-    \ The `Language` enum contains the names of most common programming languages.\n\
-    \ This field is typed as a string to permit any programming language, including\n\
-    \ ones that are not specified by the `Language` enum.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETXP\t\DC1\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETXP\DC4\NAK\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETXZ\STX\b\n\
-    \\181\ETX\n\
-    \\EOT\EOT\ETX\STX\SOH\DC2\ETXZ\STX\ESC\SUB\167\ETX (Required) Unique path to the text document.\n\
-    \\n\
-    \ 1. The path must be relative to the directory supplied in the associated\n\
-    \    `Metadata.project_root`.\n\
-    \ 2. The path must not begin with a leading '/'.\n\
-    \ 3. The path must point to a regular file, not a symbolic link.\n\
-    \ 4. The path must use '/' as the separator, including on Windows.\n\
-    \ 5. The path must be canonical; it cannot include empty components ('//'),\n\
-    \    or '.' or '..'.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETXZ\t\SYN\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETXZ\EM\SUB\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\STX\EOT\DC2\ETX\\\STX\n\
-    \\n\
-    \4\n\
-    \\EOT\EOT\ETX\STX\STX\DC2\ETX\\\STX&\SUB' Occurrences that appear in this file.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\STX\ACK\DC2\ETX\\\v\NAK\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETX\\\SYN!\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETX\\$%\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ETX\EOT\DC2\ETXb\STX\n\
-    \\n\
-    \\234\SOH\n\
-    \\EOT\EOT\ETX\STX\ETX\DC2\ETXb\STX)\SUB\220\SOH Symbols that are \"defined\" within this document.\n\
-    \\n\
-    \ This should include symbols which technically do not have any definition,\n\
-    \ but have a reference and are defined by some other symbol (see\n\
-    \ Relationship.is_definition).\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ETX\ACK\DC2\ETXb\v\FS\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ETX\SOH\DC2\ETXb\GS$\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ETX\ETX\DC2\ETXb'(\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\EOT\ENQ\DC2\ETXi\STX\b\n\
-    \\128\ETX\n\
-    \\EOT\EOT\ETX\STX\EOT\DC2\ETXi\STX\DC2\SUB\242\STX (optional) Text contents of this document. Indexers are not expected to\n\
-    \ include the text by default. It's preferable that clients read the text\n\
-    \ contents from the file system by resolving the absolute path from joining\n\
-    \ `Index.metadata.project_root` and `Document.relative_path`. This field\n\
-    \ can be useful for testing or when working with virtual/in-memory documents.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\EOT\SOH\DC2\ETXi\t\r\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\EOT\ETX\DC2\ETXi\DLE\DC1\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ENQ\ACK\DC2\ETXu\STX\DC2\n\
-    \\231\ETX\n\
-    \\EOT\EOT\ETX\STX\ENQ\DC2\ETXu\STX)\SUB\217\ETX Specifies the encoding used for source ranges in this Document.\n\
-    \\n\
-    \ Usually, this will match the type used to index the string type\n\
-    \ in the indexer's implementation language in O(1) time.\n\
-    \ - For an indexer implemented in JVM/.NET language or JavaScript/TypeScript,\n\
-    \   use UTF16CodeUnitOffsetFromLineStart.\n\
-    \ - For an indexer implemented in Python,\n\
-    \   use UTF32CodeUnitOffsetFromLineStart.\n\
-    \ - For an indexer implemented in Go, Rust or C++,\n\
-    \   use UTF8ByteOffsetFromLineStart.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ENQ\SOH\DC2\ETXu\DC3$\n\
-    \\f\n\
-    \\ENQ\EOT\ETX\STX\ENQ\ETX\DC2\ETXu'(\n\
-    \Q\n\
-    \\STX\ENQ\STX\DC2\ENQy\NUL\145\SOH\SOH\SUBD Encoding used to interpret the 'character' value in source ranges.\n\
-    \\n\
-    \\n\
-    \\n\
-    \\ETX\ENQ\STX\SOH\DC2\ETXy\ENQ\NAK\n\
-    \\f\n\
-    \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\ETX|\STX\GS\n\
-    \\147\SOH\n\
-    \\EOT\ENQ\STX\STX\NUL\DC2\ETX|\STX\"\SUB\133\SOH Default value. This value should not be used by new SCIP indexers\n\
-    \ so that a consumer can process the SCIP index without ambiguity.\n\
-    \\n\
-    \\f\n\
-    \\ENQ\ENQ\STX\STX\NUL\STX\DC2\ETX| !\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\EOT\131\SOH\STX!\n\
-    \\247\SOH\n\
-    \\EOT\ENQ\STX\STX\SOH\DC2\EOT\131\SOH\STX&\SUB\232\SOH The 'character' value is interpreted as an offset in terms\n\
-    \ of UTF-8 code units (i.e. bytes).\n\
-    \\n\
-    \ Example: For the string \"\240\159\154\128 Woo\" in UTF-8, the bytes are\n\
-    \ [240, 159, 154, 128, 32, 87, 111, 111], so the offset for 'W'\n\
-    \ would be 5.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\SOH\STX\DC2\EOT\131\SOH$%\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\STX\SOH\DC2\EOT\138\SOH\STX\"\n\
-    \\130\STX\n\
-    \\EOT\ENQ\STX\STX\STX\DC2\EOT\138\SOH\STX'\SUB\243\SOH The 'character' value is interpreted as an offset in terms\n\
-    \ of UTF-16 code units (each is 2 bytes).\n\
-    \\n\
-    \ Example: For the string \"\240\159\154\128 Woo\", the UTF-16 code units are\n\
-    \ ['\\ud83d', '\\ude80', ' ', 'W', 'o', 'o'], so the offset for 'W'\n\
-    \ would be 3.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\STX\STX\DC2\EOT\138\SOH%&\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\144\SOH\STX\"\n\
-    \\245\SOH\n\
-    \\EOT\ENQ\STX\STX\ETX\DC2\EOT\144\SOH\STX'\SUB\230\SOH The 'character' value is interpreted as an offset in terms\n\
-    \ of UTF-32 code units (each is 4 bytes).\n\
-    \\n\
-    \ Example: For the string \"\240\159\154\128 Woo\", the UTF-32 code units are\n\
-    \ ['\240\159\154\128', ' ', 'W', 'o', 'o'], so the offset for 'W' would be 2.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\144\SOH%&\n\
-    \\204\DC2\n\
-    \\STX\EOT\EOT\DC2\ACK\189\SOH\NUL\193\SOH\SOH\SUB\189\DC2 Symbol is similar to a URI, it identifies a class, method, or a local\n\
-    \ variable. `SymbolInformation` contains rich metadata about symbols such as\n\
-    \ the docstring.\n\
-    \\n\
-    \ Symbol has a standardized string representation, which can be used\n\
-    \ interchangeably with `Symbol`. The syntax for Symbol is the following:\n\
-    \ ```\n\
-    \ # (<x>)+ stands for one or more repetitions of <x>\n\
-    \ # (<x>)? stands for zero or one occurrence of <x>\n\
-    \ <symbol>               ::= <scheme> ' ' <package> ' ' (<descriptor>)+ | 'local ' <local-id>\n\
-    \ <package>              ::= <manager> ' ' <package-name> ' ' <version>\n\
-    \ <scheme>               ::= any UTF-8, escape spaces with double space. Must not be empty nor start with 'local'\n\
-    \ <manager>              ::= any UTF-8, escape spaces with double space. Use the placeholder '.' to indicate an empty value\n\
-    \ <package-name>         ::= same as above\n\
-    \ <version>              ::= same as above\n\
-    \ <descriptor>           ::= <namespace> | <type> | <term> | <method> | <type-parameter> | <parameter> | <meta> | <macro>\n\
-    \ <namespace>            ::= <name> '/'\n\
-    \ <type>                 ::= <name> '#'\n\
-    \ <term>                 ::= <name> '.'\n\
-    \ <meta>                 ::= <name> ':'\n\
-    \ <macro>                ::= <name> '!'\n\
-    \ <method>               ::= <name> '(' (<method-disambiguator>)? ').'\n\
-    \ <type-parameter>       ::= '[' <name> ']'\n\
-    \ <parameter>            ::= '(' <name> ')'\n\
-    \ <name>                 ::= <identifier>\n\
-    \ <method-disambiguator> ::= <simple-identifier>\n\
-    \ <identifier>           ::= <simple-identifier> | <escaped-identifier>\n\
-    \ <simple-identifier>    ::= (<identifier-character>)+\n\
-    \ <identifier-character> ::= '_' | '+' | '-' | '$' | ASCII letter or digit\n\
-    \ <escaped-identifier>   ::= '`' (<escaped-character>)+ '`', must contain at least one non-<identifier-character>\n\
-    \ <escaped-characters>   ::= any UTF-8, escape backticks with double backtick.\n\
-    \ <local-id>             ::= <simple-identifier>\n\
-    \ ```\n\
-    \\n\
-    \ The list of descriptors for a symbol should together form a fully\n\
-    \ qualified name for the symbol. That is, it should serve as a unique\n\
-    \ identifier across the package. Typically, it will include one descriptor\n\
-    \ for every node in the AST (along the ancestry path) between the root of\n\
-    \ the file and the node corresponding to the symbol.\n\
-    \\n\
-    \ Local symbols MUST only be used for entities which are local to a Document,\n\
-    \ and cannot be accessed from outside the Document.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\EOT\SOH\DC2\EOT\189\SOH\b\SO\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\EOT\190\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\EOT\STX\NUL\DC2\EOT\190\SOH\STX\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\190\SOH\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\190\SOH\DC2\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\EOT\191\SOH\STX\t\n\
-    \\f\n\
-    \\EOT\EOT\EOT\STX\SOH\DC2\EOT\191\SOH\STX\SYN\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\191\SOH\n\
-    \\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\191\SOH\DC4\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\STX\EOT\DC2\EOT\192\SOH\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\EOT\EOT\STX\STX\DC2\EOT\192\SOH\STX&\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\STX\ACK\DC2\EOT\192\SOH\v\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\192\SOH\SYN!\n\
-    \\r\n\
-    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\192\SOH$%\n\
-    \q\n\
-    \\STX\EOT\ENQ\DC2\ACK\198\SOH\NUL\202\SOH\SOH\SUBc Unit of packaging and distribution.\n\
-    \\n\
-    \ NOTE: This corresponds to a module in Go and JVM languages.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\ENQ\SOH\DC2\EOT\198\SOH\b\SI\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\199\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\199\SOH\STX\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\199\SOH\t\DLE\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\199\SOH\DC3\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\200\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\200\SOH\STX\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\200\SOH\t\r\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\200\SOH\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\201\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\ENQ\STX\STX\DC2\EOT\201\SOH\STX\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\201\SOH\t\DLE\n\
-    \\r\n\
-    \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\201\SOH\DC3\DC4\n\
-    \\f\n\
-    \\STX\EOT\ACK\DC2\ACK\204\SOH\NUL\229\SOH\SOH\n\
-    \\v\n\
-    \\ETX\EOT\ACK\SOH\DC2\EOT\204\SOH\b\DC2\n\
-    \\SO\n\
-    \\EOT\EOT\ACK\EOT\NUL\DC2\ACK\205\SOH\STX\223\SOH\ETX\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\EOT\NUL\SOH\DC2\EOT\205\SOH\a\r\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\EOT\NUL\ETX\DC2\EOT\206\SOH\EOT\RS\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\ETX\STX\DC2\EOT\206\SOH\EOT\RS\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\NUL\SOH\DC2\EOT\207\SOH\EOT\NAK\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\NUL\DC2\EOT\207\SOH\EOT\SUB\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\NUL\STX\DC2\EOT\207\SOH\CAN\EM\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\SOH\SOH\DC2\EOT\211\SOH\EOT\r\n\
-    \}\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\SOH\DC2\EOT\211\SOH\EOT\DC2\SUBm Unit of code abstraction and/or namespacing.\n\
-    \\n\
-    \ NOTE: This corresponds to a package in Go and JVM languages.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\SOH\STX\DC2\EOT\211\SOH\DLE\DC1\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\STX\SOH\DC2\EOT\213\SOH\EOT\v\n\
-    \(\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\STX\DC2\EOT\213\SOH\EOT$\SUB\CAN Use Namespace instead.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\STX\STX\DC2\EOT\213\SOH\SO\SI\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\STX\ETX\DC2\EOT\213\SOH\DLE#\n\
-    \\DLE\n\
-    \\b\EOT\ACK\EOT\NUL\STX\STX\ETX\SOH\DC2\EOT\213\SOH\DC1\"\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ETX\SOH\DC2\EOT\214\SOH\EOT\b\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\ETX\DC2\EOT\214\SOH\EOT\r\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ETX\STX\DC2\EOT\214\SOH\v\f\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\EOT\SOH\DC2\EOT\215\SOH\EOT\b\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\EOT\DC2\EOT\215\SOH\EOT\r\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\EOT\STX\DC2\EOT\215\SOH\v\f\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ENQ\SOH\DC2\EOT\216\SOH\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\ENQ\DC2\EOT\216\SOH\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ENQ\STX\DC2\EOT\216\SOH\r\SO\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ACK\SOH\DC2\EOT\217\SOH\EOT\DC1\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\ACK\DC2\EOT\217\SOH\EOT\SYN\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\ACK\STX\DC2\EOT\217\SOH\DC4\NAK\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\a\SOH\DC2\EOT\218\SOH\EOT\r\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\a\DC2\EOT\218\SOH\EOT\DC2\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\a\STX\DC2\EOT\218\SOH\DLE\DC1\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\b\SOH\DC2\EOT\220\SOH\EOT\b\n\
-    \.\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\b\DC2\EOT\220\SOH\EOT\r\SUB\RS Can be used for any purpose.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\b\STX\DC2\EOT\220\SOH\v\f\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\t\SOH\DC2\EOT\221\SOH\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\t\DC2\EOT\221\SOH\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\t\STX\DC2\EOT\221\SOH\f\r\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\n\
-    \\SOH\DC2\EOT\222\SOH\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\ACK\EOT\NUL\STX\n\
-    \\DC2\EOT\222\SOH\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\ACK\EOT\NUL\STX\n\
-    \\STX\DC2\EOT\222\SOH\f\r\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\224\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\ACK\STX\NUL\DC2\EOT\224\SOH\STX\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\224\SOH\t\r\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\224\SOH\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\225\SOH\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\ACK\STX\SOH\DC2\EOT\225\SOH\STX\ESC\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\225\SOH\t\SYN\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\225\SOH\EM\SUB\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\226\SOH\STX\b\n\
-    \\130\SOH\n\
-    \\EOT\EOT\ACK\STX\STX\DC2\EOT\226\SOH\STX\DC4\"t NOTE: If you add new fields here, make sure to update the prepareSlot()\n\
-    \ function responsible for parsing symbols.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\226\SOH\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\226\SOH\DC2\DC3\n\
-    \\161\STX\n\
-    \\STX\EOT\a\DC2\ACK\235\SOH\NUL\248\SOH\SOH\SUB\146\STX Signature represents the signature of a symbol as it's displayed in API\n\
-    \ documentation or hover tooltips. It uses a subset of Document's fields with\n\
-    \ the same field numbers for wire compatibility with older indexes that encoded\n\
-    \ signatures using the Document message type.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\a\SOH\DC2\EOT\235\SOH\b\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\237\SOH\STX\b\n\
-    \K\n\
-    \\EOT\EOT\a\STX\NUL\DC2\EOT\237\SOH\STX\SYN\SUB= The language of the signature, e.g. \"java\", \"go\", \"python\".\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\237\SOH\t\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\237\SOH\DC4\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\239\SOH\STX\b\n\
-    \Q\n\
-    \\EOT\EOT\a\STX\SOH\DC2\EOT\239\SOH\STX\DC2\SUBC The text content of the signature, e.g. \"void add(int a, int b)\".\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\239\SOH\t\r\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\239\SOH\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT\243\SOH\STX\n\
-    \\n\
-    \\187\SOH\n\
-    \\EOT\EOT\a\STX\STX\DC2\EOT\243\SOH\STX&\SUB\172\SOH (optional) Occurrences within the signature text that reference other\n\
-    \ symbols, enabling hyperlinking of types in the signature. Ranges are\n\
-    \ relative to the `text` field.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\243\SOH\v\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\243\SOH\SYN!\n\
-    \\r\n\
-    \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\243\SOH$%\n\
-    \\151\SOH\n\
-    \\ETX\EOT\a\t\DC2\EOT\247\SOH\STX\DC3\SUB\137\SOH Reserved field numbers from the Document message to prevent accidental\n\
-    \ reuse, which would break wire compatibility with older indexes.\n\
-    \\n\
-    \\f\n\
-    \\EOT\EOT\a\t\NUL\DC2\EOT\247\SOH\v\f\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\NUL\SOH\DC2\EOT\247\SOH\v\f\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\NUL\STX\DC2\EOT\247\SOH\v\f\n\
-    \\f\n\
-    \\EOT\EOT\a\t\SOH\DC2\EOT\247\SOH\SO\SI\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\SOH\SOH\DC2\EOT\247\SOH\SO\SI\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\SOH\STX\DC2\EOT\247\SOH\SO\SI\n\
-    \\f\n\
-    \\EOT\EOT\a\t\STX\DC2\EOT\247\SOH\DC1\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\STX\SOH\DC2\EOT\247\SOH\DC1\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\a\t\STX\STX\DC2\EOT\247\SOH\DC1\DC2\n\
-    \\131\SOH\n\
-    \\STX\EOT\b\DC2\ACK\252\SOH\NUL\206\ETX\SOH\SUBu SymbolInformation defines metadata about a symbol, such as the symbol's\n\
-    \ docstring or what package it's defined it.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\b\SOH\DC2\EOT\252\SOH\b\EM\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\255\SOH\STX\b\n\
-    \\160\SOH\n\
-    \\EOT\EOT\b\STX\NUL\DC2\EOT\255\SOH\STX\DC4\SUB\145\SOH Identifier of this symbol, which can be referenced from `Occurence.symbol`.\n\
-    \ The string must be formatted according to the grammar in `Symbol`.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\255\SOH\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\255\SOH\DC2\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\SOH\EOT\DC2\EOT\134\STX\STX\n\
-    \\n\
-    \\180\ETX\n\
-    \\EOT\EOT\b\STX\SOH\DC2\EOT\134\STX\STX$\SUB\165\ETX (optional, but strongly recommended) The markdown-formatted documentation\n\
-    \ for this symbol. Use `SymbolInformation.signature_documentation` to\n\
-    \ document the method/class/type signature of this symbol.\n\
-    \ Due to historical reasons, indexers may include signature documentation in\n\
-    \ this field by rendering markdown code blocks. New indexers should only\n\
-    \ include non-code documentation in this field, for example docstrings.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\SOH\ENQ\DC2\EOT\134\STX\v\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\134\STX\DC2\US\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\134\STX\"#\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\STX\EOT\DC2\EOT\136\STX\STX\n\
-    \\n\
-    \^\n\
-    \\EOT\EOT\b\STX\STX\DC2\EOT\136\STX\STX*\SUBP (optional) Relationships to other symbols (e.g., implements, type definition).\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\STX\ACK\DC2\EOT\136\STX\v\ETB\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\STX\SOH\DC2\EOT\136\STX\CAN%\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\STX\ETX\DC2\EOT\136\STX()\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ETX\ACK\DC2\EOT\140\STX\STX\ACK\n\
-    \\164\SOH\n\
-    \\EOT\EOT\b\STX\ETX\DC2\EOT\140\STX\STX\DLE\SUB\149\SOH The kind of this symbol. Use this field instead of\n\
-    \ `SymbolDescriptor.Suffix` to determine whether something is, for example, a\n\
-    \ class or a method.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ETX\SOH\DC2\EOT\140\STX\a\v\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ETX\ETX\DC2\EOT\140\STX\SO\SI\n\
-    \\245\ENQ\n\
-    \\EOT\EOT\b\EOT\NUL\DC2\ACK\155\STX\STX\170\ETX\ETX\SUB\228\ENQ (optional) Kind represents the fine-grained category of a symbol, suitable for presenting\n\
-    \ information about the symbol's meaning in the language.\n\
-    \\n\
-    \ For example:\n\
-    \ - A Java method would have the kind `Method` while a Go function would\n\
-    \   have the kind `Function`, even if the symbols for these use the same\n\
-    \   syntax for the descriptor `SymbolDescriptor.Suffix.Method`.\n\
-    \ - A Go struct has the symbol kind `Struct` while a Java class has\n\
-    \   the symbol kind `Class` even if they both have the same descriptor:\n\
-    \   `SymbolDescriptor.Suffix.Type`.\n\
-    \\n\
-    \ Since Kind is more fine-grained than Suffix:\n\
-    \ - If two symbols have the same Kind, they should share the same Suffix.\n\
-    \ - If two symbols have different Suffixes, they should have different Kinds.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\EOT\NUL\SOH\DC2\EOT\155\STX\a\v\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\NUL\SOH\DC2\EOT\156\STX\EOT\DC3\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\NUL\DC2\EOT\156\STX\EOT\CAN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\NUL\STX\DC2\EOT\156\STX\SYN\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SOH\SOH\DC2\EOT\158\STX\EOT\DC2\n\
-    \R\n\
-    \\ACK\EOT\b\EOT\NUL\STX\SOH\DC2\EOT\158\STX\EOT\CAN\SUBB A method which may or may not have a body. For Java, Kotlin etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SOH\STX\DC2\EOT\158\STX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\STX\SOH\DC2\EOT\160\STX\EOT\f\n\
-    \*\n\
-    \\ACK\EOT\b\EOT\NUL\STX\STX\DC2\EOT\160\STX\EOT\DC2\SUB\SUB For Ruby's attr_accessor\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\STX\STX\DC2\EOT\160\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ETX\SOH\DC2\EOT\161\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\ETX\DC2\EOT\161\STX\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ETX\STX\DC2\EOT\161\STX\f\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\EOT\SOH\DC2\EOT\163\STX\EOT\r\n\
-    \\ESC\n\
-    \\ACK\EOT\b\EOT\NUL\STX\EOT\DC2\EOT\163\STX\EOT\DC2\SUB\v For Alloy\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\EOT\STX\DC2\EOT\163\STX\DLE\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ENQ\SOH\DC2\EOT\164\STX\EOT\DC2\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\ENQ\DC2\EOT\164\STX\EOT\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ENQ\STX\DC2\EOT\164\STX\NAK\SYN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ACK\SOH\DC2\EOT\166\STX\EOT\r\n\
-    \\EM\n\
-    \\ACK\EOT\b\EOT\NUL\STX\ACK\DC2\EOT\166\STX\EOT\DC2\SUB\t For C++\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ACK\STX\DC2\EOT\166\STX\DLE\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\a\SOH\DC2\EOT\168\STX\EOT\t\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX\a\DC2\EOT\168\STX\EOT\SO\SUB\n\
-    \ For Lean\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\a\STX\DC2\EOT\168\STX\f\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\b\SOH\DC2\EOT\169\STX\EOT\v\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\b\DC2\EOT\169\STX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\b\STX\DC2\EOT\169\STX\SO\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\t\SOH\DC2\EOT\170\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\t\DC2\EOT\170\STX\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\t\STX\DC2\EOT\170\STX\f\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\n\
-    \\SOH\DC2\EOT\172\STX\EOT\v\n\
-    \\EM\n\
-    \\ACK\EOT\b\EOT\NUL\STX\n\
-    \\DC2\EOT\172\STX\EOT\DC1\SUB\t For C++\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\n\
-    \\STX\DC2\EOT\172\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\v\SOH\DC2\EOT\173\STX\EOT\f\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\v\DC2\EOT\173\STX\EOT\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\v\STX\DC2\EOT\173\STX\SI\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\f\SOH\DC2\EOT\174\STX\EOT\SI\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\f\DC2\EOT\174\STX\EOT\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\f\STX\DC2\EOT\174\STX\DC2\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\r\SOH\DC2\EOT\176\STX\EOT\f\n\
-    \\RS\n\
-    \\ACK\EOT\b\EOT\NUL\STX\r\DC2\EOT\176\STX\EOT\DC2\SUB\SO For Solidity\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\r\STX\DC2\EOT\176\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SO\SOH\DC2\EOT\178\STX\EOT\SO\n\
-    \\GS\n\
-    \\ACK\EOT\b\EOT\NUL\STX\SO\DC2\EOT\178\STX\EOT\DC4\SUB\r For Haskell\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SO\STX\DC2\EOT\178\STX\DC1\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SI\SOH\DC2\EOT\180\STX\EOT\f\n\
-    \\US\n\
-    \\ACK\EOT\b\EOT\NUL\STX\SI\DC2\EOT\180\STX\EOT\DC2\SUB\SI For C# and F#\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SI\STX\DC2\EOT\180\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DLE\SOH\DC2\EOT\181\STX\EOT\b\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\DLE\DC2\EOT\181\STX\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DLE\STX\DC2\EOT\181\STX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC1\SOH\DC2\EOT\182\STX\EOT\SO\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\DC1\DC2\EOT\182\STX\EOT\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC1\STX\DC2\EOT\182\STX\DC1\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC2\SOH\DC2\EOT\183\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\DC2\DC2\EOT\183\STX\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC2\STX\DC2\EOT\183\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC3\SOH\DC2\EOT\184\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\DC3\DC2\EOT\184\STX\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC3\STX\DC2\EOT\184\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC4\SOH\DC2\EOT\186\STX\EOT\r\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX\DC4\DC2\EOT\186\STX\EOT\DC3\SUB\n\
-    \ For Dart\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\DC4\STX\DC2\EOT\186\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\NAK\SOH\DC2\EOT\188\STX\EOT\b\n\
-    \\ESC\n\
-    \\ACK\EOT\b\EOT\NUL\STX\NAK\DC2\EOT\188\STX\EOT\SO\SUB\v For Alloy\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\NAK\STX\DC2\EOT\188\STX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SYN\SOH\DC2\EOT\189\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\SYN\DC2\EOT\189\STX\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SYN\STX\DC2\EOT\189\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ETB\SOH\DC2\EOT\190\STX\EOT\b\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\ETB\DC2\EOT\190\STX\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ETB\STX\DC2\EOT\190\STX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\CAN\SOH\DC2\EOT\191\STX\EOT\f\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\CAN\DC2\EOT\191\STX\EOT\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\CAN\STX\DC2\EOT\191\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\EM\SOH\DC2\EOT\193\STX\EOT\n\
-    \\n\
-    \;\n\
-    \\ACK\EOT\b\EOT\NUL\STX\EM\DC2\EOT\193\STX\EOT\DLE\SUB+ For 'get' in Swift, 'attr_reader' in Ruby\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\EM\STX\DC2\EOT\193\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SUB\SOH\DC2\EOT\195\STX\EOT\v\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX\SUB\DC2\EOT\195\STX\EOT\DC1\SUB\n\
-    \ For Raku\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\SUB\STX\DC2\EOT\195\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ESC\SOH\DC2\EOT\197\STX\EOT\f\n\
-    \)\n\
-    \\ACK\EOT\b\EOT\NUL\STX\ESC\DC2\EOT\197\STX\EOT\DC2\SUB\EM For Purescript and Lean\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\ESC\STX\DC2\EOT\197\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\FS\SOH\DC2\EOT\198\STX\EOT\r\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\FS\DC2\EOT\198\STX\EOT\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\FS\STX\DC2\EOT\198\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\GS\SOH\DC2\EOT\199\STX\EOT\a\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\GS\DC2\EOT\199\STX\EOT\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\GS\STX\DC2\EOT\199\STX\n\
-    \\f\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\RS\SOH\DC2\EOT\201\STX\EOT\b\n\
-    \\FS\n\
-    \\ACK\EOT\b\EOT\NUL\STX\RS\DC2\EOT\201\STX\EOT\SO\SUB\f For Racket\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\RS\STX\DC2\EOT\201\STX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\US\SOH\DC2\EOT\203\STX\EOT\t\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX\US\DC2\EOT\203\STX\EOT\SI\SUB\n\
-    \ For Lean\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\US\STX\DC2\EOT\203\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX \SOH\DC2\EOT\205\STX\EOT\v\n\
-    \\RS\n\
-    \\ACK\EOT\b\EOT\NUL\STX \DC2\EOT\205\STX\EOT\DC1\SUB\SO For solidity\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX \STX\DC2\EOT\205\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX!\SOH\DC2\EOT\206\STX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX!\DC2\EOT\206\STX\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX!\STX\DC2\EOT\206\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\"\SOH\DC2\EOT\207\STX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX\"\DC2\EOT\207\STX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX\"\STX\DC2\EOT\207\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX#\SOH\DC2\EOT\209\STX\EOT\SI\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX#\DC2\EOT\209\STX\EOT\NAK\SUB\n\
-    \ For Ruby\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX#\STX\DC2\EOT\209\STX\DC2\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX$\SOH\DC2\EOT\212\STX\EOT\DC2\n\
-    \\148\SOH\n\
-    \\ACK\EOT\b\EOT\NUL\STX$\DC2\EOT\212\STX\EOT\CAN\SUB\131\SOH Analogous to 'ThisParameter' and 'SelfParameter', but for languages\n\
-    \ like Go where the receiver doesn't have a conventional name.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX$\STX\DC2\EOT\212\STX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX%\SOH\DC2\EOT\214\STX\EOT\ETB\n\
-    \8\n\
-    \\ACK\EOT\b\EOT\NUL\STX%\DC2\EOT\214\STX\EOT\GS\SUB( Analogous to 'AbstractMethod', for Go.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX%\STX\DC2\EOT\214\STX\SUB\FS\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX&\SOH\DC2\EOT\216\STX\EOT\v\n\
-    \\RS\n\
-    \\ACK\EOT\b\EOT\NUL\STX&\DC2\EOT\216\STX\EOT\DC1\SUB\SO For Protobuf\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX&\STX\DC2\EOT\216\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX'\SOH\DC2\EOT\218\STX\EOT\t\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX'\DC2\EOT\218\STX\EOT\SI\SUB\n\
-    \ For Dart\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX'\STX\DC2\EOT\218\STX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX(\SOH\DC2\EOT\220\STX\EOT\f\n\
-    \\RS\n\
-    \\ACK\EOT\b\EOT\NUL\STX(\DC2\EOT\220\STX\EOT\DC2\SUB\SO For Solidity\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX(\STX\DC2\EOT\220\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX)\SOH\DC2\EOT\221\STX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX)\DC2\EOT\221\STX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX)\STX\DC2\EOT\221\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX*\SOH\DC2\EOT\222\STX\EOT\r\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX*\DC2\EOT\222\STX\EOT\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX*\STX\DC2\EOT\222\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX+\SOH\DC2\EOT\223\STX\EOT\b\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX+\DC2\EOT\223\STX\EOT\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX+\STX\DC2\EOT\223\STX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX,\SOH\DC2\EOT\224\STX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX,\DC2\EOT\224\STX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX,\STX\DC2\EOT\224\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX-\SOH\DC2\EOT\225\STX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX-\DC2\EOT\225\STX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX-\STX\DC2\EOT\225\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX.\SOH\DC2\EOT\226\STX\EOT\f\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX.\DC2\EOT\226\STX\EOT\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX.\STX\DC2\EOT\226\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX/\SOH\DC2\EOT\227\STX\EOT\v\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX/\DC2\EOT\227\STX\EOT\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX/\STX\DC2\EOT\227\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX0\SOH\DC2\EOT\228\STX\EOT\DC1\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX0\DC2\EOT\228\STX\EOT\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX0\STX\DC2\EOT\228\STX\DC4\SYN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX1\SOH\DC2\EOT\229\STX\EOT\r\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX1\DC2\EOT\229\STX\EOT\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX1\STX\DC2\EOT\229\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX2\SOH\DC2\EOT\230\STX\EOT\DC2\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX2\DC2\EOT\230\STX\EOT\CAN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX2\STX\DC2\EOT\230\STX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX3\SOH\DC2\EOT\232\STX\EOT\v\n\
-    \/\n\
-    \\ACK\EOT\b\EOT\NUL\STX3\DC2\EOT\232\STX\EOT\DC1\SUB\US For Haskell's PatternSynonyms\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX3\STX\DC2\EOT\232\STX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX4\SOH\DC2\EOT\234\STX\EOT\r\n\
-    \\ESC\n\
-    \\ACK\EOT\b\EOT\NUL\STX4\DC2\EOT\234\STX\EOT\DC3\SUB\v For Alloy\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX4\STX\DC2\EOT\234\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX5\SOH\DC2\EOT\235\STX\EOT\f\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STX5\DC2\EOT\235\STX\EOT\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX5\STX\DC2\EOT\235\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX6\SOH\DC2\EOT\237\STX\EOT\f\n\
-    \Q\n\
-    \\ACK\EOT\b\EOT\NUL\STX6\DC2\EOT\237\STX\EOT\DC2\SUBA Analogous to 'Trait' and 'TypeClass', for Swift and Objective-C\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX6\STX\DC2\EOT\237\STX\SI\DC1\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX7\SOH\DC2\EOT\239\STX\EOT\DC2\n\
-    \K\n\
-    \\ACK\EOT\b\EOT\NUL\STX7\DC2\EOT\239\STX\EOT\CAN\SUB; Analogous to 'AbstractMethod', for Swift and Objective-C.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX7\STX\DC2\EOT\239\STX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX8\SOH\DC2\EOT\241\STX\EOT\NAK\n\
-    \9\n\
-    \\ACK\EOT\b\EOT\NUL\STX8\DC2\EOT\241\STX\EOT\ESC\SUB) Analogous to 'AbstractMethod', for C++.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX8\STX\DC2\EOT\241\STX\CAN\SUB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX9\SOH\DC2\EOT\243\STX\EOT\SI\n\
-    \\GS\n\
-    \\ACK\EOT\b\EOT\NUL\STX9\DC2\EOT\243\STX\EOT\NAK\SUB\r For Haskell\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX9\STX\DC2\EOT\243\STX\DC2\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX:\SOH\DC2\EOT\245\STX\EOT\DC1\n\
-    \4\n\
-    \\ACK\EOT\b\EOT\NUL\STX:\DC2\EOT\245\STX\EOT\ETB\SUB$ 'self' in Python, Rust, Swift etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX:\STX\DC2\EOT\245\STX\DC4\SYN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX;\SOH\DC2\EOT\247\STX\EOT\n\
-    \\n\
-    \;\n\
-    \\ACK\EOT\b\EOT\NUL\STX;\DC2\EOT\247\STX\EOT\DLE\SUB+ For 'set' in Swift, 'attr_writer' in Ruby\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX;\STX\DC2\EOT\247\STX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX<\SOH\DC2\EOT\249\STX\EOT\r\n\
-    \3\n\
-    \\ACK\EOT\b\EOT\NUL\STX<\DC2\EOT\249\STX\EOT\DC3\SUB# For Alloy, analogous to 'Struct'.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX<\STX\DC2\EOT\249\STX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX=\SOH\DC2\EOT\251\STX\EOT\DC2\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STX=\DC2\EOT\251\STX\EOT\CAN\SUB\n\
-    \ For Ruby\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX=\STX\DC2\EOT\251\STX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX>\SOH\DC2\EOT\253\STX\EOT\DC3\n\
-    \8\n\
-    \\ACK\EOT\b\EOT\NUL\STX>\DC2\EOT\253\STX\EOT\EM\SUB( Analogous to 'StaticMethod', for Ruby.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX>\STX\DC2\EOT\253\STX\SYN\CAN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX?\SOH\DC2\EOT\255\STX\EOT\DC4\n\
-    \5\n\
-    \\ACK\EOT\b\EOT\NUL\STX?\DC2\EOT\255\STX\EOT\SUB\SUB% Analogous to 'StaticField', for C++\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX?\STX\DC2\EOT\255\STX\ETB\EM\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX@\SOH\DC2\EOT\129\ETX\EOT\SI\n\
-    \\CAN\n\
-    \\ACK\EOT\b\EOT\NUL\STX@\DC2\EOT\129\ETX\EOT\NAK\SUB\b For C#\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STX@\STX\DC2\EOT\129\ETX\DC2\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXA\SOH\DC2\EOT\131\ETX\EOT\SI\n\
-    \\CAN\n\
-    \\ACK\EOT\b\EOT\NUL\STXA\DC2\EOT\131\ETX\EOT\NAK\SUB\b For C#\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXA\STX\DC2\EOT\131\ETX\DC2\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXB\SOH\DC2\EOT\133\ETX\EOT\DLE\n\
-    \(\n\
-    \\ACK\EOT\b\EOT\NUL\STXB\DC2\EOT\133\ETX\EOT\SYN\SUB\CAN For Java, C#, C++ etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXB\STX\DC2\EOT\133\ETX\DC3\NAK\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXC\SOH\DC2\EOT\135\ETX\EOT\DC2\n\
-    \)\n\
-    \\ACK\EOT\b\EOT\NUL\STXC\DC2\EOT\135\ETX\EOT\CAN\SUB\EM For C#, TypeScript etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXC\STX\DC2\EOT\135\ETX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXD\SOH\DC2\EOT\137\ETX\EOT\DC2\n\
-    \\FS\n\
-    \\ACK\EOT\b\EOT\NUL\STXD\DC2\EOT\137\ETX\EOT\CAN\SUB\f For C, C++\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXD\STX\DC2\EOT\137\ETX\NAK\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXE\SOH\DC2\EOT\138\ETX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STXE\DC2\EOT\138\ETX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXE\STX\DC2\EOT\138\ETX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXF\SOH\DC2\EOT\139\ETX\EOT\n\
-    \\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STXF\DC2\EOT\139\ETX\EOT\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXF\STX\DC2\EOT\139\ETX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXG\SOH\DC2\EOT\141\ETX\EOT\r\n\
-    \\ESC\n\
-    \\ACK\EOT\b\EOT\NUL\STXG\DC2\EOT\141\ETX\EOT\DC3\SUB\v For Swift\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXG\STX\DC2\EOT\141\ETX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXH\SOH\DC2\EOT\143\ETX\EOT\n\
-    \\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STXH\DC2\EOT\143\ETX\EOT\DLE\SUB\n\
-    \ For Lean\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXH\STX\DC2\EOT\143\ETX\r\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXI\SOH\DC2\EOT\145\ETX\EOT\v\n\
-    \\SUB\n\
-    \\ACK\EOT\b\EOT\NUL\STXI\DC2\EOT\145\ETX\EOT\DC1\SUB\n\
-    \ For Lean\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXI\STX\DC2\EOT\145\ETX\SO\DLE\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXJ\SOH\DC2\EOT\148\ETX\EOT\DC1\n\
-    \U\n\
-    \\ACK\EOT\b\EOT\NUL\STXJ\DC2\EOT\148\ETX\EOT\ETB\SUBE Method receiver for languages\n\
-    \ 'this' in JavaScript, C++, Java etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXJ\STX\DC2\EOT\148\ETX\DC4\SYN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXK\SOH\DC2\EOT\150\ETX\EOT\t\n\
-    \O\n\
-    \\ACK\EOT\b\EOT\NUL\STXK\DC2\EOT\150\ETX\EOT\SI\SUB? Analogous to 'Protocol' and 'TypeClass', for Rust, Scala etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXK\STX\DC2\EOT\150\ETX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXL\SOH\DC2\EOT\152\ETX\EOT\SI\n\
-    \E\n\
-    \\ACK\EOT\b\EOT\NUL\STXL\DC2\EOT\152\ETX\EOT\NAK\SUB5 Analogous to 'AbstractMethod', for Rust, Scala etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXL\STX\DC2\EOT\152\ETX\DC2\DC4\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXM\SOH\DC2\EOT\155\ETX\EOT\b\n\
-    \\137\SOH\n\
-    \\ACK\EOT\b\EOT\NUL\STXM\DC2\EOT\155\ETX\EOT\SO\SUBy Data type definition for languages like OCaml which use `type`\n\
-    \ rather than separate keywords like `struct` and `enum`.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXM\STX\DC2\EOT\155\ETX\v\r\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXN\SOH\DC2\EOT\156\ETX\EOT\r\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STXN\DC2\EOT\156\ETX\EOT\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXN\STX\DC2\EOT\156\ETX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXO\SOH\DC2\EOT\158\ETX\EOT\r\n\
-    \S\n\
-    \\ACK\EOT\b\EOT\NUL\STXO\DC2\EOT\158\ETX\EOT\DC3\SUBC Analogous to 'Trait' and 'Protocol', for Haskell, Purescript etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXO\STX\DC2\EOT\158\ETX\DLE\DC2\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXP\SOH\DC2\EOT\160\ETX\EOT\DC3\n\
-    \M\n\
-    \\ACK\EOT\b\EOT\NUL\STXP\DC2\EOT\160\ETX\EOT\EM\SUB= Analogous to 'AbstractMethod', for Haskell, Purescript etc.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXP\STX\DC2\EOT\160\ETX\SYN\CAN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXQ\SOH\DC2\EOT\162\ETX\EOT\SO\n\
-    \\GS\n\
-    \\ACK\EOT\b\EOT\NUL\STXQ\DC2\EOT\162\ETX\EOT\DC4\SUB\r For Haskell\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXQ\STX\DC2\EOT\162\ETX\DC1\DC3\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXR\SOH\DC2\EOT\163\ETX\EOT\DC1\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STXR\DC2\EOT\163\ETX\EOT\ETB\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXR\STX\DC2\EOT\163\ETX\DC4\SYN\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXS\SOH\DC2\EOT\165\ETX\EOT\t\n\
-    \(\n\
-    \\ACK\EOT\b\EOT\NUL\STXS\DC2\EOT\165\ETX\EOT\SI\SUB\CAN For C, C++, Capn Proto\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXS\STX\DC2\EOT\165\ETX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXT\SOH\DC2\EOT\166\ETX\EOT\t\n\
-    \\SO\n\
-    \\ACK\EOT\b\EOT\NUL\STXT\DC2\EOT\166\ETX\EOT\SI\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXT\STX\DC2\EOT\166\ETX\f\SO\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXU\SOH\DC2\EOT\167\ETX\EOT\f\n\
-    \[\n\
-    \\ACK\EOT\b\EOT\NUL\STXU\DC2\EOT\167\ETX\EOT\DC2\"K Next = 87;\n\
-    \ Feel free to open a PR proposing new language-specific kinds.\n\
-    \\n\
-    \\SI\n\
-    \\a\EOT\b\EOT\NUL\STXU\STX\DC2\EOT\167\ETX\SI\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\EOT\ENQ\DC2\EOT\180\ETX\STX\b\n\
-    \\243\ETX\n\
-    \\EOT\EOT\b\STX\EOT\DC2\EOT\180\ETX\STX\SUB\SUB\228\ETX (optional) The name of this symbol as it should be displayed to the user.\n\
-    \ For example, the symbol \"com/example/MyClass#myMethod(+1).\" should have the\n\
-    \ display name \"myMethod\". The `symbol` field is not a reliable source of\n\
-    \ the display name for several reasons:\n\
-    \\n\
-    \ - Local symbols don't encode the name.\n\
-    \ - Some languages have case-insensitive names, so the symbol is all-lowercase.\n\
-    \ - The symbol may encode names with special characters that should not be\n\
-    \   displayed to the user.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\EOT\SOH\DC2\EOT\180\ETX\t\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\EOT\ETX\DC2\EOT\180\ETX\CAN\EM\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ENQ\ACK\DC2\EOT\187\ETX\STX\v\n\
-    \\159\ETX\n\
-    \\EOT\EOT\b\STX\ENQ\DC2\EOT\187\ETX\STX(\SUB\144\ETX (optional) The signature of this symbol as it's displayed in API\n\
-    \ documentation or in hover tooltips. For example, a Java method that adds\n\
-    \ two numbers would have `Signature.language = \"java\"` and\n\
-    \ `Signature.text = \"void add(int a, int b)\"`. The `language` and `text`\n\
-    \ fields are required while `occurrences` can be optionally included to\n\
-    \ support hyperlinking referenced symbols in the signature.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ENQ\SOH\DC2\EOT\187\ETX\f#\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ENQ\ETX\DC2\EOT\187\ETX&'\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ACK\ENQ\DC2\EOT\205\ETX\STX\b\n\
-    \\201\b\n\
-    \\EOT\EOT\b\STX\ACK\DC2\EOT\205\ETX\STX\RS\SUB\186\b (optional) The enclosing symbol if this is a local symbol.  For non-local\n\
-    \ symbols, the enclosing symbol should be parsed from the `symbol` field\n\
-    \ using the `Descriptor` grammar.\n\
-    \\n\
-    \ The primary use-case for this field is to allow local symbol to be displayed\n\
-    \ in a symbol hierarchy for API documentation. It's OK to leave this field\n\
-    \ empty for local variables since local variables usually don't belong in API\n\
-    \ documentation. However, in the situation that you wish to include a local\n\
-    \ symbol in the hierarchy, then you can use `enclosing_symbol` to locate the\n\
-    \ \"parent\" or \"owner\" of this local symbol. For example, a Java indexer may\n\
-    \ choose to use local symbols for private class fields while providing an\n\
-    \ `enclosing_symbol` to reference the enclosing class to allow the field to\n\
-    \ be part of the class documentation hierarchy. From the perspective of an\n\
-    \ author of an indexer, the decision to use a local symbol or global symbol\n\
-    \ should exclusively be determined whether the local symbol is accessible\n\
-    \ outside the document, not by the capability to find the enclosing\n\
-    \ symbol.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ACK\SOH\DC2\EOT\205\ETX\t\EM\n\
-    \\r\n\
-    \\ENQ\EOT\b\STX\ACK\ETX\DC2\EOT\205\ETX\FS\GS\n\
-    \\f\n\
-    \\STX\EOT\t\DC2\ACK\208\ETX\NUL\132\EOT\SOH\n\
-    \\v\n\
-    \\ETX\EOT\t\SOH\DC2\EOT\208\ETX\b\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\209\ETX\STX\b\n\
-    \\f\n\
-    \\EOT\EOT\t\STX\NUL\DC2\EOT\209\ETX\STX\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\209\ETX\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\209\ETX\DC2\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\234\ETX\STX\ACK\n\
-    \\222\b\n\
-    \\EOT\EOT\t\STX\SOH\DC2\EOT\234\ETX\STX\CAN\SUB\207\b When resolving \"Find references\", this field documents what other symbols\n\
-    \ should be included together with this symbol. For example, consider the\n\
-    \ following TypeScript code that defines two symbols `Animal#sound()` and\n\
-    \ `Dog#sound()`:\n\
-    \ ```ts\n\
-    \ interface Animal {\n\
-    \           ^^^^^^ definition Animal#\n\
-    \   sound(): string\n\
-    \   ^^^^^ definition Animal#sound()\n\
-    \ }\n\
-    \ class Dog implements Animal {\n\
-    \       ^^^ definition Dog#, relationships = [{symbol: \"Animal#\", is_implementation: true}]\n\
-    \   public sound(): string { return \"woof\" }\n\
-    \          ^^^^^ definition Dog#sound(), references_symbols = Animal#sound(), relationships = [{symbol: \"Animal#sound()\", is_implementation:true, is_reference: true}]\n\
-    \ }\n\
-    \ const animal: Animal = new Dog()\n\
-    \               ^^^^^^ reference Animal#\n\
-    \ console.log(animal.sound())\n\
-    \                    ^^^^^ reference Animal#sound()\n\
-    \ ```\n\
-    \ Doing \"Find references\" on the symbol `Animal#sound()` should return\n\
-    \ references to the `Dog#sound()` method as well. Vice-versa, doing \"Find\n\
-    \ references\" on the `Dog#sound()` method should include references to the\n\
-    \ `Animal#sound()` method as well.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\234\ETX\a\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\234\ETX\SYN\ETB\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\243\ETX\STX\ACK\n\
-    \\238\ETX\n\
-    \\EOT\EOT\t\STX\STX\DC2\EOT\243\ETX\STX\GS\SUB\223\ETX Similar to `is_reference` but for \"Find implementations\".\n\
-    \ It's common for `is_implementation` and `is_reference` to both be true but\n\
-    \ it's not always the case.\n\
-    \ In the TypeScript example above, observe that `Dog#` has an\n\
-    \ `is_implementation` relationship with `\"Animal#\"` but not `is_reference`.\n\
-    \ This is because \"Find references\" on the \"Animal#\" symbol should not return\n\
-    \ \"Dog#\". We only want \"Dog#\" to return as a result for \"Find\n\
-    \ implementations\" on the \"Animal#\" symbol.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\243\ETX\a\CAN\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\243\ETX\ESC\FS\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\245\ETX\STX\ACK\n\
-    \P\n\
-    \\EOT\EOT\t\STX\ETX\DC2\EOT\245\ETX\STX\RS\SUBB Similar to `references_symbols` but for \"Go to type definition\".\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\245\ETX\a\EM\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\245\ETX\FS\GS\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\130\EOT\STX\ACK\n\
-    \\216\ENQ\n\
-    \\EOT\EOT\t\STX\EOT\DC2\EOT\130\EOT\STX\EM\SUB\134\ENQ Allows overriding the behavior of \"Go to definition\" and \"Find references\"\n\
-    \ for symbols which do not have a definition of their own or could\n\
-    \ potentially have multiple definitions.\n\
-    \\n\
-    \ For example, in a language with single inheritance and no field overriding,\n\
-    \ inherited fields can reuse the same symbol as the ancestor which declares\n\
-    \ the field. In such a situation, is_definition is not needed.\n\
-    \\n\
-    \ On the other hand, in languages with single inheritance and some form\n\
-    \ of mixins, you can use is_definition to relate the symbol to the\n\
-    \ matching symbol in ancestor classes, and is_reference to relate the\n\
-    \ symbol to the matching symbol in mixins.\n\
-    \\"A Update registerInverseRelationships on adding a new field here.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\130\EOT\a\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\130\EOT\ETB\CAN\n\
-    \\136\ETX\n\
-    \\STX\ENQ\ETX\DC2\ACK\139\EOT\NUL\161\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\
-    \ encoded as a bitset where each bit represents a different role. For example,\n\
-    \ to determine if the `Import` role is set, test whether the second bit of the\n\
-    \ enum value is defined. In pseudocode, this can be implemented with the\n\
-    \ logic: `const isImportRole = (role.value & SymbolRole.Import.value) > 0`.\n\
-    \\n\
-    \\v\n\
-    \\ETX\ENQ\ETX\SOH\DC2\EOT\139\EOT\ENQ\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\142\EOT\STX\ETB\n\
-    \v\n\
-    \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\142\EOT\STX\FS\SUBh This case is not meant to be used; it only exists to avoid an error\n\
-    \ from the Protobuf code generator.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\142\EOT\SUB\ESC\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\144\EOT\STX\f\n\
-    \T\n\
-    \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\144\EOT\STX\DC3\SUBF Is the symbol defined here? If not, then this is a symbol reference.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\144\EOT\SI\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\146\EOT\STX\b\n\
-    \,\n\
-    \\EOT\ENQ\ETX\STX\STX\DC2\EOT\146\EOT\STX\SI\SUB\RS Is the symbol imported here?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\146\EOT\v\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\148\EOT\STX\r\n\
-    \+\n\
-    \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\148\EOT\STX\DC4\SUB\GS Is the symbol written here?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\148\EOT\DLE\DC3\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\150\EOT\STX\f\n\
-    \(\n\
-    \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\150\EOT\STX\DC3\SUB\SUB Is the symbol read here?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\150\EOT\SI\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\152\EOT\STX\v\n\
-    \0\n\
-    \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\152\EOT\STX\DC3\SUB\" Is the symbol in generated code?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\152\EOT\SO\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\154\EOT\STX\ACK\n\
-    \+\n\
-    \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\154\EOT\STX\SO\SUB\GS Is the symbol in test code?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\154\EOT\t\r\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\160\EOT\STX\DC3\n\
-    \\237\SOH\n\
-    \\EOT\ENQ\ETX\STX\a\DC2\EOT\160\EOT\STX\ESC\SUB\222\SOH Is this a signature for a symbol that is defined elsewhere?\n\
-    \\n\
-    \ Applies to forward declarations for languages like C, C++\n\
-    \ and Objective-C, as well as `val` declarations in interface\n\
-    \ files in languages like SML and OCaml.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\160\EOT\SYN\SUB\n\
-    \\f\n\
-    \\STX\ENQ\EOT\DC2\ACK\163\EOT\NUL\128\ENQ\SOH\n\
-    \\v\n\
-    \\ETX\ENQ\EOT\SOH\DC2\EOT\163\EOT\ENQ\SI\n\
-    \\v\n\
-    \\ETX\ENQ\EOT\ETX\DC2\EOT\164\EOT\STX\FS\n\
-    \\f\n\
-    \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\164\EOT\STX\FS\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\166\EOT\STX\ETB\n\
-    \\f\n\
-    \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\166\EOT\STX\FS\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\166\EOT\SUB\ESC\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\169\EOT\STX\t\n\
-    \;\n\
-    \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\169\EOT\STX\SO\SUB- Comment, including comment markers and text\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\169\EOT\f\r\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\172\EOT\STX\SYN\n\
-    \\ESC\n\
-    \\EOT\ENQ\EOT\STX\STX\DC2\EOT\172\EOT\STX\ESC\SUB\r `;` `.` `,`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\172\EOT\EM\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\174\EOT\STX\DC4\n\
-    \2\n\
-    \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\174\EOT\STX\EM\SUB$ (), {}, [] when used syntactically\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\174\EOT\ETB\CAN\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\177\EOT\STX\t\n\
-    \5\n\
-    \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\177\EOT\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\177\EOT\f\r\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\178\EOT\STX\DC3\n\
-    \\f\n\
-    \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\178\EOT\STX,\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\178\EOT\SYN\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\178\EOT\CAN+\n\
-    \\SO\n\
-    \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\178\EOT\EM*\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\181\EOT\STX\DC4\n\
-    \\RS\n\
-    \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\181\EOT\STX\EM\SUB\DLE `+`, `*`, etc.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\181\EOT\ETB\CAN\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\184\EOT\STX\f\n\
-    \X\n\
-    \\EOT\ENQ\EOT\STX\a\DC2\EOT\184\EOT\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\184\EOT\SI\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\186\EOT\STX\DC3\n\
-    \N\n\
-    \\EOT\ENQ\EOT\STX\b\DC2\EOT\186\EOT\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\186\EOT\SYN\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\188\EOT\STX\DLE\n\
-    \[\n\
-    \\EOT\ENQ\EOT\STX\t\DC2\EOT\188\EOT\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\188\EOT\DC3\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\n\
-    \\SOH\DC2\EOT\190\EOT\STX\DC4\n\
-    \.\n\
-    \\EOT\ENQ\EOT\STX\n\
-    \\DC2\EOT\190\EOT\STX\EM\SUB  `xyz` in `const xyz = \"hello\"`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\n\
-    \\STX\DC2\EOT\190\EOT\ETB\CAN\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\192\EOT\STX\EM\n\
-    \'\n\
-    \\EOT\ENQ\EOT\STX\v\DC2\EOT\192\EOT\STX\US\SUB\EM `var X = \"hello\"` in Go\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\192\EOT\FS\RS\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\194\EOT\STX\NAK\n\
-    \3\n\
-    \\EOT\ENQ\EOT\STX\f\DC2\EOT\194\EOT\STX\ESC\SUB% Parameter definition and references\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\194\EOT\CAN\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\196\EOT\STX\DC1\n\
-    \X\n\
-    \\EOT\ENQ\EOT\STX\r\DC2\EOT\196\EOT\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\196\EOT\DC4\SYN\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\198\EOT\STX\DC4\n\
-    \K\n\
-    \\EOT\ENQ\EOT\STX\SO\DC2\EOT\198\EOT\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\198\EOT\ETB\EM\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\203\EOT\STX\NAK\n\
-    \\205\SOH\n\
-    \\EOT\ENQ\EOT\STX\SI\DC2\EOT\203\EOT\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\
-    \\n\
-    \ NOTE: This corresponds to a package in Go and JVM languages,\n\
-    \ and a module in languages like Python and JavaScript.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\203\EOT\CAN\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\204\EOT\STX\DC2\n\
-    \\f\n\
-    \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\204\EOT\STX,\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\204\EOT\NAK\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\204\EOT\CAN+\n\
-    \\SO\n\
-    \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\204\EOT\EM*\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\207\EOT\STX\DC4\n\
-    \4\n\
-    \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\207\EOT\STX\SUB\SUB& Function references, including calls\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\207\EOT\ETB\EM\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\209\EOT\STX\RS\n\
-    \(\n\
-    \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\209\EOT\STX$\SUB\SUB Function definition only\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\209\EOT!#\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\212\EOT\STX\DC1\n\
-    \7\n\
-    \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\212\EOT\STX\ETB\SUB) Macro references, including invocations\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\212\EOT\DC4\SYN\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\214\EOT\STX\ESC\n\
-    \%\n\
-    \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\214\EOT\STX!\SUB\ETB Macro definition only\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\214\EOT\RS \n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\217\EOT\STX\DLE\n\
-    \!\n\
-    \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\217\EOT\STX\SYN\SUB\DC3 non-builtin types\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\217\EOT\DC3\NAK\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\219\EOT\STX\ETB\n\
-    \K\n\
-    \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\219\EOT\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\219\EOT\SUB\FS\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\222\EOT\STX\NAK\n\
-    \7\n\
-    \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\222\EOT\STX\ESC\SUB) Python decorators, c-like __attribute__\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\222\EOT\CAN\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\225\EOT\STX\r\n\
-    \\DC4\n\
-    \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\225\EOT\STX\DC3\SUB\ACK `\\b`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\225\EOT\DLE\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\227\EOT\STX\SI\n\
-    \\CAN\n\
-    \\EOT\ENQ\EOT\STX\EM\DC2\EOT\227\EOT\STX\NAK\SUB\n\
-    \ `*`, `+`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\227\EOT\DC2\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\229\EOT\STX\SI\n\
-    \\DC3\n\
-    \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\229\EOT\STX\NAK\SUB\ENQ `.`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\229\EOT\DC2\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\231\EOT\STX\DLE\n\
-    \\"\n\
-    \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\231\EOT\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\231\EOT\DC3\NAK\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\233\EOT\STX\v\n\
-    \\CAN\n\
-    \\EOT\ENQ\EOT\STX\FS\DC2\EOT\233\EOT\STX\DC1\SUB\n\
-    \ `|`, `-`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\233\EOT\SO\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\236\EOT\STX\SI\n\
-    \0\n\
-    \\EOT\ENQ\EOT\STX\GS\DC2\EOT\236\EOT\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\236\EOT\DC2\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\238\EOT\STX\NAK\n\
-    \-\n\
-    \\EOT\ENQ\EOT\STX\RS\DC2\EOT\238\EOT\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\238\EOT\CAN\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\240\EOT\STX\SYN\n\
-    \_\n\
-    \\EOT\ENQ\EOT\STX\US\DC2\EOT\240\EOT\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\240\EOT\EM\ESC\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\242\EOT\STX\DC2\n\
-    \G\n\
-    \\EOT\ENQ\EOT\STX \DC2\EOT\242\EOT\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\242\EOT\NAK\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\244\EOT\STX\DC2\n\
-    \V\n\
-    \\EOT\ENQ\EOT\STX!\DC2\EOT\244\EOT\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\244\EOT\NAK\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\246\EOT\STX\DLE\n\
-    \9\n\
-    \\EOT\ENQ\EOT\STX\"\DC2\EOT\246\EOT\STX\SYN\SUB+ Literal numbers, both floats and integers\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\246\EOT\DC3\NAK\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\248\EOT\STX\DLE\n\
-    \\US\n\
-    \\EOT\ENQ\EOT\STX#\DC2\EOT\248\EOT\STX\SYN\SUB\DC1 `true`, `false`\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\248\EOT\DC3\NAK\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\251\EOT\STX\ENQ\n\
-    \&\n\
-    \\EOT\ENQ\EOT\STX$\DC2\EOT\251\EOT\STX\v\SUB\CAN Used for XML-like tags\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\251\EOT\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\253\EOT\STX\SO\n\
-    \/\n\
-    \\EOT\ENQ\EOT\STX%\DC2\EOT\253\EOT\STX\DC4\SUB! Attribute name in XML-like tags\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\253\EOT\DC1\DC3\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\255\EOT\STX\SO\n\
-    \,\n\
-    \\EOT\ENQ\EOT\STX&\DC2\EOT\255\EOT\STX\DC4\SUB\RS Delimiters for XML-like tags\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\255\EOT\DC1\DC3\n\
-    \\249\SOH\n\
-    \\STX\EOT\n\
-    \\DC2\ACK\135\ENQ\NUL\232\ENQ\SOH\SUB\234\SOH Occurrence associates a source position with a symbol and/or highlighting\n\
-    \ information.\n\
-    \\n\
-    \ If possible, indexers should try to bundle logically related information\n\
-    \ across occurrences into a single occurrence to reduce payload sizes.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\n\
-    \\SOH\DC2\EOT\135\ENQ\b\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\NUL\EOT\DC2\EOT\159\ENQ\STX\n\
-    \\n\
-    \\232\b\n\
-    \\EOT\EOT\n\
-    \\STX\NUL\DC2\EOT\159\ENQ\STX\ESC\SUB\217\b Half-open [start, end) range of this occurrence. Must be exactly three or four\n\
-    \ elements:\n\
-    \\n\
-    \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\
-    \ - Three elements: `[startLine, startCharacter, endCharacter]`. The end line\n\
-    \   is inferred to have the same value as the start line.\n\
-    \\n\
-    \ It is allowed for the range to be empty (i.e. start==end).\n\
-    \\n\
-    \ Line numbers and characters are always 0-based. Make sure to increment the\n\
-    \ line/character values before displaying them in an editor-like UI because\n\
-    \ editors conventionally use 1-based numbers.\n\
-    \\n\
-    \ The 'character' value is interpreted based on the PositionEncoding for\n\
-    \ the Document.\n\
-    \\n\
-    \ Historical note: the original draft of this schema had a `Range` message\n\
-    \ type with `start` and `end` fields of type `Position`, mirroring LSP.\n\
-    \ Benchmarks revealed that this encoding was inefficient and that we could\n\
-    \ reduce the total payload size of an index by 50% by using `repeated int32`\n\
-    \ instead. The `repeated int32` encoding is admittedly more embarrassing to\n\
-    \ work with in some programming languages but we hope the performance\n\
-    \ improvements make up for it.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\NUL\ENQ\DC2\EOT\159\ENQ\v\DLE\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\NUL\SOH\DC2\EOT\159\ENQ\DC1\SYN\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\NUL\ETX\DC2\EOT\159\ENQ\EM\SUB\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\SOH\ENQ\DC2\EOT\162\ENQ\STX\b\n\
-    \\138\SOH\n\
-    \\EOT\EOT\n\
-    \\STX\SOH\DC2\EOT\162\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\
-    \ `SymbolInformation.symbol` for how to format symbols as strings.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\SOH\SOH\DC2\EOT\162\ENQ\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\SOH\ETX\DC2\EOT\162\ENQ\DC2\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\STX\ENQ\DC2\EOT\165\ENQ\STX\a\n\
-    \\151\SOH\n\
-    \\EOT\EOT\n\
-    \\STX\STX\DC2\EOT\165\ENQ\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\
-    \ See `SymbolRole`'s documentation for how to read and write this field.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\STX\SOH\DC2\EOT\165\ENQ\b\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\STX\ETX\DC2\EOT\165\ENQ\ETB\CAN\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ETX\EOT\DC2\EOT\174\ENQ\STX\n\
-    \\n\
-    \\241\ETX\n\
-    \\EOT\EOT\n\
-    \\STX\ETX\DC2\EOT\174\ENQ\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\
-    \ empty, the `Symbol.documentation` field is used instead. One example\n\
-    \ where this field might be useful is when the symbol represents a generic\n\
-    \ function (with abstract type parameters such as `List<T>`) and at this\n\
-    \ occurrence we know the exact values (such as `List<String>`).\n\
-    \\n\
-    \ This field can also be used for dynamically or gradually typed languages,\n\
-    \ which commonly allow for type-changing assignment.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ETX\ENQ\DC2\EOT\174\ENQ\v\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ETX\SOH\DC2\EOT\174\ENQ\DC2(\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ETX\ETX\DC2\EOT\174\ENQ+,\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\EOT\ACK\DC2\EOT\176\ENQ\STX\f\n\
-    \X\n\
-    \\EOT\EOT\n\
-    \\STX\EOT\DC2\EOT\176\ENQ\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\EOT\SOH\DC2\EOT\176\ENQ\r\CAN\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\EOT\ETX\DC2\EOT\176\ENQ\ESC\FS\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ENQ\EOT\DC2\EOT\178\ENQ\STX\n\
-    \\n\
-    \W\n\
-    \\EOT\EOT\n\
-    \\STX\ENQ\DC2\EOT\178\ENQ\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ENQ\ACK\DC2\EOT\178\ENQ\v\NAK\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ENQ\SOH\DC2\EOT\178\ENQ\SYN!\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ENQ\ETX\DC2\EOT\178\ENQ$%\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ACK\EOT\DC2\EOT\231\ENQ\STX\n\
-    \\n\
-    \\183\SO\n\
-    \\EOT\EOT\n\
-    \\STX\ACK\DC2\EOT\231\ENQ\STX%\SUB\168\SO (optional) Using the same encoding as the sibling `range` field, half-open\n\
-    \ source range of the nearest non-trivial enclosing AST node. This range must\n\
-    \ enclose the `range` field. Example applications that make use of the\n\
-    \ enclosing_range field:\n\
-    \\n\
-    \ - Call hierarchies: to determine what symbols are references from the body\n\
-    \   of a function\n\
-    \ - Symbol outline: to display breadcrumbs from the cursor position to the\n\
-    \   root of the file\n\
-    \ - Expand selection: to select the nearest enclosing AST node.\n\
-    \ - Highlight range: to indicate the AST expression that is associated with a\n\
-    \   hover popover\n\
-    \\n\
-    \ For definition occurrences, the enclosing range should indicate the\n\
-    \ start/end bounds of the entire definition AST node, including\n\
-    \ documentation.\n\
-    \ ```\n\
-    \ const n = 3\n\
-    \       ^ range\n\
-    \ ^^^^^^^^^^^ enclosing_range\n\
-    \\n\
-    \ /** Parses the string into something */\n\
-    \ ^ enclosing_range start --------------------------------------|\n\
-    \ function parse(input string): string {                        |\n\
-    \          ^^^^^ range                                          |\n\
-    \     return input.slice(n)                                     |\n\
-    \ }                                                             |\n\
-    \ ^ enclosing_range end <---------------------------------------|\n\
-    \ ```\n\
-    \\n\
-    \ Any attributes/decorators/attached macros should also be part of the\n\
-    \ enclosing range.\n\
-    \\n\
-    \ ```python\n\
-    \ @cache\n\
-    \ ^ enclosing_range start---------------------|\n\
-    \ def factorial(n):                           |\n\
-    \     return n * factorial(n-1) if n else 1   |\n\
-    \ < enclosing_range end-----------------------|\n\
-    \\n\
-    \ ```\n\
-    \\n\
-    \ For reference occurrences, the enclosing range should indicate the start/end\n\
-    \ bounds of the parent expression.\n\
-    \ ```\n\
-    \ const a = a.b\n\
-    \             ^ range\n\
-    \           ^^^ enclosing_range\n\
-    \ const b = a.b(41).f(42).g(43)\n\
-    \                   ^ range\n\
-    \           ^^^^^^^^^^^^^ enclosing_range\n\
-    \ ```\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ACK\ENQ\DC2\EOT\231\ENQ\v\DLE\n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ACK\SOH\DC2\EOT\231\ENQ\DC1 \n\
-    \\r\n\
-    \\ENQ\EOT\n\
-    \\STX\ACK\ETX\DC2\EOT\231\ENQ#$\n\
-    \w\n\
-    \\STX\EOT\v\DC2\ACK\236\ENQ\NUL\247\ENQ\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\
-    \ reported for a document.\n\
-    \\n\
-    \\v\n\
-    \\ETX\EOT\v\SOH\DC2\EOT\236\ENQ\b\DC2\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\NUL\ACK\DC2\EOT\238\ENQ\STX\n\
-    \\n\
-    \W\n\
-    \\EOT\EOT\v\STX\NUL\DC2\EOT\238\ENQ\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\238\ENQ\v\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\238\ENQ\SYN\ETB\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\240\ENQ\STX\b\n\
-    \]\n\
-    \\EOT\EOT\v\STX\SOH\DC2\EOT\240\ENQ\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\240\ENQ\t\r\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\240\ENQ\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\242\ENQ\STX\b\n\
-    \+\n\
-    \\EOT\EOT\v\STX\STX\DC2\EOT\242\ENQ\STX\NAK\SUB\GS Message of this diagnostic.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\242\ENQ\t\DLE\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\242\ENQ\DC3\DC4\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\245\ENQ\STX\b\n\
-    \~\n\
-    \\EOT\EOT\v\STX\ETX\DC2\EOT\245\ENQ\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\
-    \ 'typescript' or 'super lint'.\n\
-    \\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\245\ENQ\t\SI\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\245\ENQ\DC2\DC3\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\EOT\EOT\DC2\EOT\246\ENQ\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\EOT\v\STX\EOT\DC2\EOT\246\ENQ\STX\"\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\EOT\ACK\DC2\EOT\246\ENQ\v\CAN\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\EOT\SOH\DC2\EOT\246\ENQ\EM\GS\n\
-    \\r\n\
-    \\ENQ\EOT\v\STX\EOT\ETX\DC2\EOT\246\ENQ !\n\
-    \\f\n\
-    \\STX\ENQ\ENQ\DC2\ACK\249\ENQ\NUL\255\ENQ\SOH\n\
-    \\v\n\
-    \\ETX\ENQ\ENQ\SOH\DC2\EOT\249\ENQ\ENQ\r\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\250\ENQ\STX\NAK\n\
-    \\f\n\
-    \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\250\ENQ\STX\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\250\ENQ\CAN\EM\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\251\ENQ\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\251\ENQ\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\251\ENQ\n\
-    \\v\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\252\ENQ\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\252\ENQ\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\252\ENQ\f\r\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\253\ENQ\STX\r\n\
-    \\f\n\
-    \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\253\ENQ\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\253\ENQ\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\254\ENQ\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\254\ENQ\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\254\ENQ\t\n\
-    \\n\
-    \\f\n\
-    \\STX\ENQ\ACK\DC2\ACK\129\ACK\NUL\133\ACK\SOH\n\
-    \\v\n\
-    \\ETX\ENQ\ACK\SOH\DC2\EOT\129\ACK\ENQ\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\130\ACK\STX\SUB\n\
-    \\f\n\
-    \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\130\ACK\STX\US\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\130\ACK\GS\RS\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\131\ACK\STX\r\n\
-    \\f\n\
-    \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\131\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\131\ACK\DLE\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\132\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\ACK\STX\STX\DC2\EOT\132\ACK\STX\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\132\ACK\SI\DLE\n\
-    \\208\ETX\n\
-    \\STX\ENQ\a\DC2\ACK\141\ACK\NUL\131\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\
-    \ for the `Document.language` field. The primary purpose of this enum is to\n\
-    \ prevent a situation where we have a single programming language ends up with\n\
-    \ multiple string representations. For example, the C++ language uses the name\n\
-    \ \"CPP\" in this enum and other names such as \"cpp\" are incompatible.\n\
-    \ Feel free to send a pull-request to add missing programming languages.\n\
-    \\n\
-    \\v\n\
-    \\ETX\ENQ\a\SOH\DC2\EOT\141\ACK\ENQ\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\142\ACK\STX\NAK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\NUL\DC2\EOT\142\ACK\STX\SUB\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\142\ACK\CAN\EM\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\143\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\SOH\DC2\EOT\143\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\143\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\144\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\STX\DC2\EOT\144\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\144\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\145\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\ETX\DC2\EOT\145\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\145\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\146\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\EOT\DC2\EOT\146\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\146\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\147\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\ENQ\DC2\EOT\147\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\147\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\148\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\ACK\DC2\EOT\148\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\148\ACK\r\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\149\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\a\DC2\EOT\149\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\149\ACK\r\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\150\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\b\DC2\EOT\150\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\150\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\151\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\t\DC2\EOT\151\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\151\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\n\
-    \\SOH\DC2\EOT\152\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\n\
-    \\DC2\EOT\152\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\n\
-    \\STX\DC2\EOT\152\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\153\ACK\STX\ETX\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\v\DC2\EOT\153\ACK\STX\t\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\153\ACK\ACK\b\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\154\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\f\DC2\EOT\154\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\154\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\155\ACK\STX\ENQ\n\
-    \G\n\
-    \\EOT\ENQ\a\STX\r\DC2\EOT\155\ACK\STX\v\"9 C++ (the name \"CPP\" was chosen for consistency with LSP)\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\155\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\156\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\SO\DC2\EOT\156\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\156\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\157\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\SI\DC2\EOT\157\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\157\ACK\v\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\158\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\DLE\DC2\EOT\158\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\158\ACK\f\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\159\ACK\STX\SO\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\DC1\DC2\EOT\159\ACK\STX\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\159\ACK\DC1\DC3\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\160\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\DC2\DC2\EOT\160\ACK\STX\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\160\ACK\SI\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\161\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\DC3\DC2\EOT\161\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\161\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\162\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\DC4\DC2\EOT\162\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\162\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\163\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\NAK\DC2\EOT\163\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\163\ACK\t\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\164\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\SYN\DC2\EOT\164\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\164\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\165\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\ETB\DC2\EOT\165\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\165\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\166\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\CAN\DC2\EOT\166\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\166\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\167\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\EM\DC2\EOT\167\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\167\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\168\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\SUB\DC2\EOT\168\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\168\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\169\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\ESC\DC2\EOT\169\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\169\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\170\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\FS\DC2\EOT\170\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\170\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\171\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\GS\DC2\EOT\171\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\171\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\172\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\RS\DC2\EOT\172\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\172\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\173\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\US\DC2\EOT\173\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\173\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX \SOH\DC2\EOT\174\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX \DC2\EOT\174\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX \STX\DC2\EOT\174\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\175\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX!\DC2\EOT\175\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX!\STX\DC2\EOT\175\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\176\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\"\DC2\EOT\176\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\176\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\177\ACK\STX\EOT\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX#\DC2\EOT\177\ACK\STX\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX#\STX\DC2\EOT\177\ACK\a\t\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\178\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX$\DC2\EOT\178\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX$\STX\DC2\EOT\178\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\179\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX%\DC2\EOT\179\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX%\STX\DC2\EOT\179\ACK\v\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\180\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX&\DC2\EOT\180\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX&\STX\DC2\EOT\180\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\181\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX'\DC2\EOT\181\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX'\STX\DC2\EOT\181\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\182\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX(\DC2\EOT\182\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX(\STX\DC2\EOT\182\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\183\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX)\DC2\EOT\183\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX)\STX\DC2\EOT\183\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\184\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX*\DC2\EOT\184\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX*\STX\DC2\EOT\184\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\185\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX+\DC2\EOT\185\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX+\STX\DC2\EOT\185\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\186\ACK\STX\ETX\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX,\DC2\EOT\186\ACK\STX\t\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX,\STX\DC2\EOT\186\ACK\ACK\b\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\187\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX-\DC2\EOT\187\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX-\STX\DC2\EOT\187\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\188\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX.\DC2\EOT\188\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX.\STX\DC2\EOT\188\ACK\t\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\189\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX/\DC2\EOT\189\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX/\STX\DC2\EOT\189\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\190\ACK\STX\DC1\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX0\DC2\EOT\190\ACK\STX\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX0\STX\DC2\EOT\190\ACK\DC4\SYN\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\191\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX1\DC2\EOT\191\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX1\STX\DC2\EOT\191\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\192\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX2\DC2\EOT\192\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX2\STX\DC2\EOT\192\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\193\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX3\DC2\EOT\193\ACK\STX\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX3\STX\DC2\EOT\193\ACK\r\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\194\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX4\DC2\EOT\194\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX4\STX\DC2\EOT\194\ACK\v\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\195\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX5\DC2\EOT\195\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX5\STX\DC2\EOT\195\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\196\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX6\DC2\EOT\196\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX6\STX\DC2\EOT\196\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\197\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX7\DC2\EOT\197\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX7\STX\DC2\EOT\197\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\198\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX8\DC2\EOT\198\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX8\STX\DC2\EOT\198\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\199\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX9\DC2\EOT\199\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX9\STX\DC2\EOT\199\ACK\t\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\200\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX:\DC2\EOT\200\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX:\STX\DC2\EOT\200\ACK\r\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\201\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX;\DC2\EOT\201\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX;\STX\DC2\EOT\201\ACK\r\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\202\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX<\DC2\EOT\202\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX<\STX\DC2\EOT\202\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\203\ACK\STX\b\n\
-    \'\n\
-    \\EOT\ENQ\a\STX=\DC2\EOT\203\ACK\STX\SI\"\EM https://nickel-lang.org/\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX=\STX\DC2\EOT\203\ACK\v\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\204\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX>\DC2\EOT\204\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX>\STX\DC2\EOT\204\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\205\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX?\DC2\EOT\205\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX?\STX\DC2\EOT\205\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\206\ACK\STX\r\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX@\DC2\EOT\206\ACK\STX\DC3\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX@\STX\DC2\EOT\206\ACK\DLE\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\207\ACK\STX\SI\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXA\DC2\EOT\207\ACK\STX\NAK\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXA\STX\DC2\EOT\207\ACK\DC2\DC4\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\208\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXB\DC2\EOT\208\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXB\STX\DC2\EOT\208\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\209\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXC\DC2\EOT\209\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXC\STX\DC2\EOT\209\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\210\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXD\DC2\EOT\210\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXD\STX\DC2\EOT\210\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\211\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXE\DC2\EOT\211\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXE\STX\DC2\EOT\211\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\212\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXF\DC2\EOT\212\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXF\STX\DC2\EOT\212\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\213\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXG\DC2\EOT\213\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXG\STX\DC2\EOT\213\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\214\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXH\DC2\EOT\214\ACK\STX\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXH\STX\DC2\EOT\214\ACK\r\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\215\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXI\DC2\EOT\215\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXI\STX\DC2\EOT\215\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\216\ACK\STX\ETX\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXJ\DC2\EOT\216\ACK\STX\t\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\216\ACK\ACK\b\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\217\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXK\DC2\EOT\217\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXK\STX\DC2\EOT\217\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\218\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXL\DC2\EOT\218\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXL\STX\DC2\EOT\218\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\219\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXM\DC2\EOT\219\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXM\STX\DC2\EOT\219\ACK\n\
-    \\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\220\ACK\STX\a\n\
-    \1\n\
-    \\EOT\ENQ\a\STXN\DC2\EOT\220\ACK\STX\SO\"# Internal language for testing SCIP\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXN\STX\DC2\EOT\220\ACK\n\
-    \\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\221\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXO\DC2\EOT\221\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXO\STX\DC2\EOT\221\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\222\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXP\DC2\EOT\222\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXP\STX\DC2\EOT\222\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\223\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXQ\DC2\EOT\223\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\223\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\224\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXR\DC2\EOT\224\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXR\STX\DC2\EOT\224\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\225\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXS\DC2\EOT\225\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXS\STX\DC2\EOT\225\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\226\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXT\DC2\EOT\226\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXT\STX\DC2\EOT\226\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\227\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXU\DC2\EOT\227\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXU\STX\DC2\EOT\227\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\228\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXV\DC2\EOT\228\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXV\STX\DC2\EOT\228\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\229\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXW\DC2\EOT\229\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXW\STX\DC2\EOT\229\ACK\n\
-    \\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\230\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXX\DC2\EOT\230\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXX\STX\DC2\EOT\230\ACK\v\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\231\ACK\STX\r\n\
-    \\DC3\n\
-    \\EOT\ENQ\a\STXY\DC2\EOT\231\ACK\STX\DC3\"\ENQ Bash\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXY\STX\DC2\EOT\231\ACK\DLE\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\232\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXZ\DC2\EOT\232\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\232\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\233\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX[\DC2\EOT\233\ACK\STX\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX[\STX\DC2\EOT\233\ACK\n\
-    \\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\234\ACK\STX\n\
-    \\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX\\\DC2\EOT\234\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\234\ACK\r\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\235\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX]\DC2\EOT\235\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX]\STX\DC2\EOT\235\ACK\v\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\236\ACK\STX\a\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX^\DC2\EOT\236\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX^\STX\DC2\EOT\236\ACK\n\
-    \\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\237\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX_\DC2\EOT\237\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX_\STX\DC2\EOT\237\ACK\b\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\238\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STX`\DC2\EOT\238\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STX`\STX\DC2\EOT\238\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\239\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXa\DC2\EOT\239\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXa\STX\DC2\EOT\239\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\240\ACK\STX\b\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXb\DC2\EOT\240\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXb\STX\DC2\EOT\240\ACK\v\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\241\ACK\STX\f\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXc\DC2\EOT\241\ACK\STX\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXc\STX\DC2\EOT\241\ACK\SI\DC1\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\242\ACK\STX\DC1\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXd\DC2\EOT\242\ACK\STX\ETB\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXd\STX\DC2\EOT\242\ACK\DC4\SYN\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\243\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXe\DC2\EOT\243\ACK\STX\DLE\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXe\STX\DC2\EOT\243\ACK\f\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\244\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXf\DC2\EOT\244\ACK\STX\r\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXf\STX\DC2\EOT\244\ACK\t\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\245\ACK\STX\r\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXg\DC2\EOT\245\ACK\STX\DC3\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXg\STX\DC2\EOT\245\ACK\DLE\DC2\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\246\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXh\DC2\EOT\246\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXh\STX\DC2\EOT\246\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\247\ACK\STX\t\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXi\DC2\EOT\247\ACK\STX\SI\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXi\STX\DC2\EOT\247\ACK\f\SO\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\248\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXj\DC2\EOT\248\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXj\STX\DC2\EOT\248\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\249\ACK\STX\ENQ\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXk\DC2\EOT\249\ACK\STX\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXk\STX\DC2\EOT\249\ACK\b\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\250\ACK\STX\ACK\n\
-    \\f\n\
-    \\EOT\ENQ\a\STXl\DC2\EOT\250\ACK\STX\f\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXl\STX\DC2\EOT\250\ACK\t\v\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\251\ACK\STX\ENQ\n\
-    \\147\ETX\n\
-    \\EOT\ENQ\a\STXm\DC2\EOT\251\ACK\STX\v\"\132\ETX NextLanguage = 111;\n\
-    \ Steps add a new language:\n\
-    \ 1. Copy-paste the \"NextLanguage = N\" line above\n\
-    \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\
-    \ 3. Replace \"NextLanguage = N\" with the name of the new language.\n\
-    \ 4. Move the new language to the correct line above using alphabetical order\n\
-    \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\
-    \\n\
-    \\r\n\
-    \\ENQ\ENQ\a\STXm\STX\DC2\EOT\251\ACK\b\n\
+        Language(), Language'UnrecognizedValue, Metadata(),
+        MultiLineRange(), Occurrence(), Occurrence'TypedRange(..),
+        Occurrence'TypedEnclosingRange(..), _Occurrence'SingleLineRange,
+        _Occurrence'MultiLineRange, _Occurrence'SingleLineEnclosingRange,
+        _Occurrence'MultiLineEnclosingRange, Package(),
+        PositionEncoding(..), PositionEncoding(),
+        PositionEncoding'UnrecognizedValue, ProtocolVersion(..),
+        ProtocolVersion(), ProtocolVersion'UnrecognizedValue,
+        Relationship(), Severity(..), Severity(),
+        Severity'UnrecognizedValue, Signature(), SingleLineRange(),
+        Symbol(), SymbolInformation(), SymbolInformation'Kind(..),
+        SymbolInformation'Kind(), SymbolInformation'Kind'UnrecognizedValue,
+        SymbolRole(..), SymbolRole(), SymbolRole'UnrecognizedValue,
+        SyntaxKind(..), SyntaxKind(IdentifierKeyword, IdentifierModule),
+        SyntaxKind'UnrecognizedValue, TextEncoding(..), TextEncoding(),
+        TextEncoding'UnrecognizedValue, ToolInfo()
+    ) where
+import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism
+import qualified Data.ProtoLens.Runtime.Prelude as Prelude
+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int
+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid
+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum
+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types
+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2
+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked
+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text
+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map
+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString
+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8
+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding
+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector
+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic
+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed
+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.name' @:: Lens' Descriptor Data.Text.Text@
+         * 'Proto.Scip_Fields.disambiguator' @:: Lens' Descriptor Data.Text.Text@
+         * 'Proto.Scip_Fields.suffix' @:: Lens' Descriptor Descriptor'Suffix@ -}
+data Descriptor
+  = Descriptor'_constructor {_Descriptor'name :: !Data.Text.Text,
+                             _Descriptor'disambiguator :: !Data.Text.Text,
+                             _Descriptor'suffix :: !Descriptor'Suffix,
+                             _Descriptor'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Descriptor where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Descriptor "name" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Descriptor'name (\ x__ y__ -> x__ {_Descriptor'name = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Descriptor "disambiguator" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Descriptor'disambiguator
+           (\ x__ y__ -> x__ {_Descriptor'disambiguator = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Descriptor "suffix" Descriptor'Suffix where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Descriptor'suffix (\ x__ y__ -> x__ {_Descriptor'suffix = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Descriptor where
+  messageName _ = Data.Text.pack "scip.Descriptor"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Descriptor\DC2\DC2\n\
+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2$\n\
+      \\rdisambiguator\CAN\STX \SOH(\tR\rdisambiguator\DC2/\n\
+      \\ACKsuffix\CAN\ETX \SOH(\SO2\ETB.scip.Descriptor.SuffixR\ACKsuffix\"\165\SOH\n\
+      \\ACKSuffix\DC2\NAK\n\
+      \\DC1UnspecifiedSuffix\DLE\NUL\DC2\r\n\
+      \\tNamespace\DLE\SOH\DC2\SI\n\
+      \\aPackage\DLE\SOH\SUB\STX\b\SOH\DC2\b\n\
+      \\EOTType\DLE\STX\DC2\b\n\
+      \\EOTTerm\DLE\ETX\DC2\n\
+      \\n\
+      \\ACKMethod\DLE\EOT\DC2\DC1\n\
+      \\rTypeParameter\DLE\ENQ\DC2\r\n\
+      \\tParameter\DLE\ACK\DC2\b\n\
+      \\EOTMeta\DLE\a\DC2\t\n\
+      \\ENQLocal\DLE\b\DC2\t\n\
+      \\ENQMacro\DLE\t\SUB\STX\DLE\SOH"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        name__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
+              Data.ProtoLens.FieldDescriptor Descriptor
+        disambiguator__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "disambiguator"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"disambiguator")) ::
+              Data.ProtoLens.FieldDescriptor Descriptor
+        suffix__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "suffix"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor Descriptor'Suffix)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"suffix")) ::
+              Data.ProtoLens.FieldDescriptor Descriptor
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, name__field_descriptor),
+           (Data.ProtoLens.Tag 2, disambiguator__field_descriptor),
+           (Data.ProtoLens.Tag 3, suffix__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Descriptor'_unknownFields
+        (\ x__ y__ -> x__ {_Descriptor'_unknownFields = y__})
+  defMessage
+    = Descriptor'_constructor
+        {_Descriptor'name = Data.ProtoLens.fieldDefault,
+         _Descriptor'disambiguator = Data.ProtoLens.fieldDefault,
+         _Descriptor'suffix = Data.ProtoLens.fieldDefault,
+         _Descriptor'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Descriptor -> Data.ProtoLens.Encoding.Bytes.Parser Descriptor
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "name"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "disambiguator"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"disambiguator") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "suffix"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"suffix") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "Descriptor"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v
+                     = Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"disambiguator") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"suffix") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
+                            ((Prelude..)
+                               ((Prelude..)
+                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                               Prelude.fromEnum _v))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Descriptor where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Descriptor'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Descriptor'name x__)
+                (Control.DeepSeq.deepseq
+                   (_Descriptor'disambiguator x__)
+                   (Control.DeepSeq.deepseq (_Descriptor'suffix x__) ())))
+newtype Descriptor'Suffix'UnrecognizedValue
+  = Descriptor'Suffix'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data Descriptor'Suffix
+  = Descriptor'UnspecifiedSuffix |
+    Descriptor'Namespace |
+    Descriptor'Type |
+    Descriptor'Term |
+    Descriptor'Method |
+    Descriptor'TypeParameter |
+    Descriptor'Parameter |
+    Descriptor'Meta |
+    Descriptor'Local |
+    Descriptor'Macro |
+    Descriptor'Suffix'Unrecognized !Descriptor'Suffix'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum Descriptor'Suffix where
+  maybeToEnum 0 = Prelude.Just Descriptor'UnspecifiedSuffix
+  maybeToEnum 1 = Prelude.Just Descriptor'Namespace
+  maybeToEnum 2 = Prelude.Just Descriptor'Type
+  maybeToEnum 3 = Prelude.Just Descriptor'Term
+  maybeToEnum 4 = Prelude.Just Descriptor'Method
+  maybeToEnum 5 = Prelude.Just Descriptor'TypeParameter
+  maybeToEnum 6 = Prelude.Just Descriptor'Parameter
+  maybeToEnum 7 = Prelude.Just Descriptor'Meta
+  maybeToEnum 8 = Prelude.Just Descriptor'Local
+  maybeToEnum 9 = Prelude.Just Descriptor'Macro
+  maybeToEnum k
+    = Prelude.Just
+        (Descriptor'Suffix'Unrecognized
+           (Descriptor'Suffix'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum Descriptor'UnspecifiedSuffix = "UnspecifiedSuffix"
+  showEnum Descriptor'Namespace = "Namespace"
+  showEnum Descriptor'Type = "Type"
+  showEnum Descriptor'Term = "Term"
+  showEnum Descriptor'Method = "Method"
+  showEnum Descriptor'TypeParameter = "TypeParameter"
+  showEnum Descriptor'Parameter = "Parameter"
+  showEnum Descriptor'Meta = "Meta"
+  showEnum Descriptor'Local = "Local"
+  showEnum Descriptor'Macro = "Macro"
+  showEnum
+    (Descriptor'Suffix'Unrecognized (Descriptor'Suffix'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedSuffix"
+    = Prelude.Just Descriptor'UnspecifiedSuffix
+    | (Prelude.==) k "Namespace" = Prelude.Just Descriptor'Namespace
+    | (Prelude.==) k "Package" = Prelude.Just Descriptor'Package
+    | (Prelude.==) k "Type" = Prelude.Just Descriptor'Type
+    | (Prelude.==) k "Term" = Prelude.Just Descriptor'Term
+    | (Prelude.==) k "Method" = Prelude.Just Descriptor'Method
+    | (Prelude.==) k "TypeParameter"
+    = Prelude.Just Descriptor'TypeParameter
+    | (Prelude.==) k "Parameter" = Prelude.Just Descriptor'Parameter
+    | (Prelude.==) k "Meta" = Prelude.Just Descriptor'Meta
+    | (Prelude.==) k "Local" = Prelude.Just Descriptor'Local
+    | (Prelude.==) k "Macro" = Prelude.Just Descriptor'Macro
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded Descriptor'Suffix where
+  minBound = Descriptor'UnspecifiedSuffix
+  maxBound = Descriptor'Macro
+instance Prelude.Enum Descriptor'Suffix where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum Suffix: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum Descriptor'UnspecifiedSuffix = 0
+  fromEnum Descriptor'Namespace = 1
+  fromEnum Descriptor'Type = 2
+  fromEnum Descriptor'Term = 3
+  fromEnum Descriptor'Method = 4
+  fromEnum Descriptor'TypeParameter = 5
+  fromEnum Descriptor'Parameter = 6
+  fromEnum Descriptor'Meta = 7
+  fromEnum Descriptor'Local = 8
+  fromEnum Descriptor'Macro = 9
+  fromEnum
+    (Descriptor'Suffix'Unrecognized (Descriptor'Suffix'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ Descriptor'Macro
+    = Prelude.error
+        "Descriptor'Suffix.succ: bad argument Descriptor'Macro. This value would be out of bounds."
+  succ Descriptor'UnspecifiedSuffix = Descriptor'Namespace
+  succ Descriptor'Namespace = Descriptor'Type
+  succ Descriptor'Type = Descriptor'Term
+  succ Descriptor'Term = Descriptor'Method
+  succ Descriptor'Method = Descriptor'TypeParameter
+  succ Descriptor'TypeParameter = Descriptor'Parameter
+  succ Descriptor'Parameter = Descriptor'Meta
+  succ Descriptor'Meta = Descriptor'Local
+  succ Descriptor'Local = Descriptor'Macro
+  succ (Descriptor'Suffix'Unrecognized _)
+    = Prelude.error
+        "Descriptor'Suffix.succ: bad argument: unrecognized value"
+  pred Descriptor'UnspecifiedSuffix
+    = Prelude.error
+        "Descriptor'Suffix.pred: bad argument Descriptor'UnspecifiedSuffix. This value would be out of bounds."
+  pred Descriptor'Namespace = Descriptor'UnspecifiedSuffix
+  pred Descriptor'Type = Descriptor'Namespace
+  pred Descriptor'Term = Descriptor'Type
+  pred Descriptor'Method = Descriptor'Term
+  pred Descriptor'TypeParameter = Descriptor'Method
+  pred Descriptor'Parameter = Descriptor'TypeParameter
+  pred Descriptor'Meta = Descriptor'Parameter
+  pred Descriptor'Local = Descriptor'Meta
+  pred Descriptor'Macro = Descriptor'Local
+  pred (Descriptor'Suffix'Unrecognized _)
+    = Prelude.error
+        "Descriptor'Suffix.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault Descriptor'Suffix where
+  fieldDefault = Descriptor'UnspecifiedSuffix
+instance Control.DeepSeq.NFData Descriptor'Suffix where
+  rnf x__ = Prelude.seq x__ ()
+pattern Descriptor'Package :: Descriptor'Suffix
+pattern Descriptor'Package = Descriptor'Namespace
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.severity' @:: Lens' Diagnostic Severity@
+         * 'Proto.Scip_Fields.code' @:: Lens' Diagnostic Data.Text.Text@
+         * 'Proto.Scip_Fields.message' @:: Lens' Diagnostic Data.Text.Text@
+         * 'Proto.Scip_Fields.source' @:: Lens' Diagnostic Data.Text.Text@
+         * 'Proto.Scip_Fields.tags' @:: Lens' Diagnostic [DiagnosticTag]@
+         * 'Proto.Scip_Fields.vec'tags' @:: Lens' Diagnostic (Data.Vector.Vector DiagnosticTag)@ -}
+data Diagnostic
+  = Diagnostic'_constructor {_Diagnostic'severity :: !Severity,
+                             _Diagnostic'code :: !Data.Text.Text,
+                             _Diagnostic'message :: !Data.Text.Text,
+                             _Diagnostic'source :: !Data.Text.Text,
+                             _Diagnostic'tags :: !(Data.Vector.Vector DiagnosticTag),
+                             _Diagnostic'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Diagnostic where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Diagnostic "severity" Severity where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'severity
+           (\ x__ y__ -> x__ {_Diagnostic'severity = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Diagnostic "code" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'code (\ x__ y__ -> x__ {_Diagnostic'code = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Diagnostic "message" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'message (\ x__ y__ -> x__ {_Diagnostic'message = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Diagnostic "source" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'source (\ x__ y__ -> x__ {_Diagnostic'source = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Diagnostic "tags" [DiagnosticTag] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'tags (\ x__ y__ -> x__ {_Diagnostic'tags = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Diagnostic "vec'tags" (Data.Vector.Vector DiagnosticTag) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Diagnostic'tags (\ x__ y__ -> x__ {_Diagnostic'tags = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Diagnostic where
+  messageName _ = Data.Text.pack "scip.Diagnostic"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Diagnostic\DC2*\n\
+      \\bseverity\CAN\SOH \SOH(\SO2\SO.scip.SeverityR\bseverity\DC2\DC2\n\
+      \\EOTcode\CAN\STX \SOH(\tR\EOTcode\DC2\CAN\n\
+      \\amessage\CAN\ETX \SOH(\tR\amessage\DC2\SYN\n\
+      \\ACKsource\CAN\EOT \SOH(\tR\ACKsource\DC2'\n\
+      \\EOTtags\CAN\ENQ \ETX(\SO2\DC3.scip.DiagnosticTagR\EOTtags"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        severity__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "severity"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor Severity)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"severity")) ::
+              Data.ProtoLens.FieldDescriptor Diagnostic
+        code__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "code"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"code")) ::
+              Data.ProtoLens.FieldDescriptor Diagnostic
+        message__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "message"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"message")) ::
+              Data.ProtoLens.FieldDescriptor Diagnostic
+        source__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "source"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"source")) ::
+              Data.ProtoLens.FieldDescriptor Diagnostic
+        tags__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tags"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor DiagnosticTag)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"tags")) ::
+              Data.ProtoLens.FieldDescriptor Diagnostic
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, severity__field_descriptor),
+           (Data.ProtoLens.Tag 2, code__field_descriptor),
+           (Data.ProtoLens.Tag 3, message__field_descriptor),
+           (Data.ProtoLens.Tag 4, source__field_descriptor),
+           (Data.ProtoLens.Tag 5, tags__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Diagnostic'_unknownFields
+        (\ x__ y__ -> x__ {_Diagnostic'_unknownFields = y__})
+  defMessage
+    = Diagnostic'_constructor
+        {_Diagnostic'severity = Data.ProtoLens.fieldDefault,
+         _Diagnostic'code = Data.ProtoLens.fieldDefault,
+         _Diagnostic'message = Data.ProtoLens.fieldDefault,
+         _Diagnostic'source = Data.ProtoLens.fieldDefault,
+         _Diagnostic'tags = Data.Vector.Generic.empty,
+         _Diagnostic'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Diagnostic
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DiagnosticTag
+             -> Data.ProtoLens.Encoding.Bytes.Parser Diagnostic
+        loop x mutable'tags
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'tags <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'tags)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'tags") frozen'tags x))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "severity"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"severity") y x)
+                                  mutable'tags
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "code"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"code") y x)
+                                  mutable'tags
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "message"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"message") y x)
+                                  mutable'tags
+                        34
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "source"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"source") y x)
+                                  mutable'tags
+                        40
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (Prelude.fmap
+                                           Prelude.toEnum
+                                           (Prelude.fmap
+                                              Prelude.fromIntegral
+                                              Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                        "tags"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'tags y)
+                                loop x v
+                        42
+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                        Data.ProtoLens.Encoding.Bytes.isolate
+                                          (Prelude.fromIntegral len)
+                                          ((let
+                                              ploop qs
+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
+                                                     if packedEnd then
+                                                         Prelude.return qs
+                                                     else
+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                                                    (Prelude.fmap
+                                                                       Prelude.toEnum
+                                                                       (Prelude.fmap
+                                                                          Prelude.fromIntegral
+                                                                          Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                                                    "tags"
+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                                     (Data.ProtoLens.Encoding.Growing.append
+                                                                        qs q)
+                                                            ploop qs'
+                                            in ploop)
+                                             mutable'tags)
+                                loop x y
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'tags
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'tags <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'tags)
+          "Diagnostic"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"severity") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                      ((Prelude..)
+                         ((Prelude..)
+                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                         Prelude.fromEnum _v))
+             ((Data.Monoid.<>)
+                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"code") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"message") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                            ((Prelude..)
+                               (\ bs
+                                  -> (Data.Monoid.<>)
+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                               Data.Text.Encoding.encodeUtf8 _v))
+                   ((Data.Monoid.<>)
+                      (let
+                         _v = Lens.Family2.view (Data.ProtoLens.Field.field @"source") _x
+                       in
+                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                             Data.Monoid.mempty
+                         else
+                             (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
+                               ((Prelude..)
+                                  (\ bs
+                                     -> (Data.Monoid.<>)
+                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                             (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                          (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                  Data.Text.Encoding.encodeUtf8 _v))
+                      ((Data.Monoid.<>)
+                         (let
+                            p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'tags") _x
+                          in
+                            if Data.Vector.Generic.null p then
+                                Data.Monoid.mempty
+                            else
+                                (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
+                                  ((\ bs
+                                      -> (Data.Monoid.<>)
+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                     (Data.ProtoLens.Encoding.Bytes.runBuilder
+                                        (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                                           ((Prelude..)
+                                              ((Prelude..)
+                                                 Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                 Prelude.fromIntegral)
+                                              Prelude.fromEnum)
+                                           p))))
+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
+instance Control.DeepSeq.NFData Diagnostic where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Diagnostic'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Diagnostic'severity x__)
+                (Control.DeepSeq.deepseq
+                   (_Diagnostic'code x__)
+                   (Control.DeepSeq.deepseq
+                      (_Diagnostic'message x__)
+                      (Control.DeepSeq.deepseq
+                         (_Diagnostic'source x__)
+                         (Control.DeepSeq.deepseq (_Diagnostic'tags x__) ())))))
+newtype DiagnosticTag'UnrecognizedValue
+  = DiagnosticTag'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data DiagnosticTag
+  = UnspecifiedDiagnosticTag |
+    Unnecessary |
+    Deprecated |
+    DiagnosticTag'Unrecognized !DiagnosticTag'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum DiagnosticTag where
+  maybeToEnum 0 = Prelude.Just UnspecifiedDiagnosticTag
+  maybeToEnum 1 = Prelude.Just Unnecessary
+  maybeToEnum 2 = Prelude.Just Deprecated
+  maybeToEnum k
+    = Prelude.Just
+        (DiagnosticTag'Unrecognized
+           (DiagnosticTag'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedDiagnosticTag = "UnspecifiedDiagnosticTag"
+  showEnum Unnecessary = "Unnecessary"
+  showEnum Deprecated = "Deprecated"
+  showEnum
+    (DiagnosticTag'Unrecognized (DiagnosticTag'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedDiagnosticTag"
+    = Prelude.Just UnspecifiedDiagnosticTag
+    | (Prelude.==) k "Unnecessary" = Prelude.Just Unnecessary
+    | (Prelude.==) k "Deprecated" = Prelude.Just Deprecated
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded DiagnosticTag where
+  minBound = UnspecifiedDiagnosticTag
+  maxBound = Deprecated
+instance Prelude.Enum DiagnosticTag where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum DiagnosticTag: "
+              (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedDiagnosticTag = 0
+  fromEnum Unnecessary = 1
+  fromEnum Deprecated = 2
+  fromEnum
+    (DiagnosticTag'Unrecognized (DiagnosticTag'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ Deprecated
+    = Prelude.error
+        "DiagnosticTag.succ: bad argument Deprecated. This value would be out of bounds."
+  succ UnspecifiedDiagnosticTag = Unnecessary
+  succ Unnecessary = Deprecated
+  succ (DiagnosticTag'Unrecognized _)
+    = Prelude.error
+        "DiagnosticTag.succ: bad argument: unrecognized value"
+  pred UnspecifiedDiagnosticTag
+    = Prelude.error
+        "DiagnosticTag.pred: bad argument UnspecifiedDiagnosticTag. This value would be out of bounds."
+  pred Unnecessary = UnspecifiedDiagnosticTag
+  pred Deprecated = Unnecessary
+  pred (DiagnosticTag'Unrecognized _)
+    = Prelude.error
+        "DiagnosticTag.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault DiagnosticTag where
+  fieldDefault = UnspecifiedDiagnosticTag
+instance Control.DeepSeq.NFData DiagnosticTag where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.language' @:: Lens' Document Data.Text.Text@
+         * 'Proto.Scip_Fields.relativePath' @:: Lens' Document Data.Text.Text@
+         * 'Proto.Scip_Fields.occurrences' @:: Lens' Document [Occurrence]@
+         * 'Proto.Scip_Fields.vec'occurrences' @:: Lens' Document (Data.Vector.Vector Occurrence)@
+         * 'Proto.Scip_Fields.symbols' @:: Lens' Document [SymbolInformation]@
+         * 'Proto.Scip_Fields.vec'symbols' @:: Lens' Document (Data.Vector.Vector SymbolInformation)@
+         * 'Proto.Scip_Fields.text' @:: Lens' Document Data.Text.Text@
+         * 'Proto.Scip_Fields.positionEncoding' @:: Lens' Document PositionEncoding@ -}
+data Document
+  = Document'_constructor {_Document'language :: !Data.Text.Text,
+                           _Document'relativePath :: !Data.Text.Text,
+                           _Document'occurrences :: !(Data.Vector.Vector Occurrence),
+                           _Document'symbols :: !(Data.Vector.Vector SymbolInformation),
+                           _Document'text :: !Data.Text.Text,
+                           _Document'positionEncoding :: !PositionEncoding,
+                           _Document'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Document where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Document "language" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'language (\ x__ y__ -> x__ {_Document'language = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Document "relativePath" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'relativePath
+           (\ x__ y__ -> x__ {_Document'relativePath = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Document "occurrences" [Occurrence] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'occurrences
+           (\ x__ y__ -> x__ {_Document'occurrences = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Document "vec'occurrences" (Data.Vector.Vector Occurrence) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'occurrences
+           (\ x__ y__ -> x__ {_Document'occurrences = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Document "symbols" [SymbolInformation] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'symbols (\ x__ y__ -> x__ {_Document'symbols = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Document "vec'symbols" (Data.Vector.Vector SymbolInformation) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'symbols (\ x__ y__ -> x__ {_Document'symbols = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Document "text" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'text (\ x__ y__ -> x__ {_Document'text = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Document "positionEncoding" PositionEncoding where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Document'positionEncoding
+           (\ x__ y__ -> x__ {_Document'positionEncoding = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Document where
+  messageName _ = Data.Text.pack "scip.Document"
+  packedMessageDescriptor _
+    = "\n\
+      \\bDocument\DC2\SUB\n\
+      \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2#\n\
+      \\rrelative_path\CAN\SOH \SOH(\tR\frelativePath\DC22\n\
+      \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\
+      \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\
+      \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\
+      \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        language__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "language"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"language")) ::
+              Data.ProtoLens.FieldDescriptor Document
+        relativePath__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "relative_path"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"relativePath")) ::
+              Data.ProtoLens.FieldDescriptor Document
+        occurrences__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "occurrences"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Occurrence)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"occurrences")) ::
+              Data.ProtoLens.FieldDescriptor Document
+        symbols__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "symbols"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"symbols")) ::
+              Data.ProtoLens.FieldDescriptor Document
+        text__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "text"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"text")) ::
+              Data.ProtoLens.FieldDescriptor Document
+        positionEncoding__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "position_encoding"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor PositionEncoding)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"positionEncoding")) ::
+              Data.ProtoLens.FieldDescriptor Document
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 4, language__field_descriptor),
+           (Data.ProtoLens.Tag 1, relativePath__field_descriptor),
+           (Data.ProtoLens.Tag 2, occurrences__field_descriptor),
+           (Data.ProtoLens.Tag 3, symbols__field_descriptor),
+           (Data.ProtoLens.Tag 5, text__field_descriptor),
+           (Data.ProtoLens.Tag 6, positionEncoding__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Document'_unknownFields
+        (\ x__ y__ -> x__ {_Document'_unknownFields = y__})
+  defMessage
+    = Document'_constructor
+        {_Document'language = Data.ProtoLens.fieldDefault,
+         _Document'relativePath = Data.ProtoLens.fieldDefault,
+         _Document'occurrences = Data.Vector.Generic.empty,
+         _Document'symbols = Data.Vector.Generic.empty,
+         _Document'text = Data.ProtoLens.fieldDefault,
+         _Document'positionEncoding = Data.ProtoLens.fieldDefault,
+         _Document'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Document
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation
+                -> Data.ProtoLens.Encoding.Bytes.Parser Document
+        loop x mutable'occurrences mutable'symbols
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'occurrences)
+                      frozen'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                             mutable'symbols)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'occurrences") frozen'occurrences
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'symbols") frozen'symbols x)))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        34
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "language"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x)
+                                  mutable'occurrences mutable'symbols
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "relative_path"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"relativePath") y x)
+                                  mutable'occurrences mutable'symbols
+                        18
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "occurrences"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'occurrences y)
+                                loop x v mutable'symbols
+                        26
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "symbols"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'symbols y)
+                                loop x mutable'occurrences v
+                        42
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "text"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"text") y x)
+                                  mutable'occurrences mutable'symbols
+                        48
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "position_encoding"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"positionEncoding") y x)
+                                  mutable'occurrences mutable'symbols
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'occurrences mutable'symbols
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              mutable'symbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                   Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'occurrences mutable'symbols)
+          "Document"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v
+                     = Lens.Family2.view (Data.ProtoLens.Field.field @"relativePath") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.ProtoLens.encodeMessage _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'occurrences") _x))
+                   ((Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                         (\ _v
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                                 ((Prelude..)
+                                    (\ bs
+                                       -> (Data.Monoid.<>)
+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                    Data.ProtoLens.encodeMessage _v))
+                         (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'symbols") _x))
+                      ((Data.Monoid.<>)
+                         (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"text") _x
+                          in
+                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                Data.Monoid.mempty
+                            else
+                                (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
+                                  ((Prelude..)
+                                     (\ bs
+                                        -> (Data.Monoid.<>)
+                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                     Data.Text.Encoding.encodeUtf8 _v))
+                         ((Data.Monoid.<>)
+                            (let
+                               _v
+                                 = Lens.Family2.view
+                                     (Data.ProtoLens.Field.field @"positionEncoding") _x
+                             in
+                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                   Data.Monoid.mempty
+                               else
+                                   (Data.Monoid.<>)
+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt 48)
+                                     ((Prelude..)
+                                        ((Prelude..)
+                                           Data.ProtoLens.Encoding.Bytes.putVarInt
+                                           Prelude.fromIntegral)
+                                        Prelude.fromEnum _v))
+                            (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                               (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))
+instance Control.DeepSeq.NFData Document where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Document'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Document'language x__)
+                (Control.DeepSeq.deepseq
+                   (_Document'relativePath x__)
+                   (Control.DeepSeq.deepseq
+                      (_Document'occurrences x__)
+                      (Control.DeepSeq.deepseq
+                         (_Document'symbols x__)
+                         (Control.DeepSeq.deepseq
+                            (_Document'text x__)
+                            (Control.DeepSeq.deepseq (_Document'positionEncoding x__) ()))))))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.metadata' @:: Lens' Index Metadata@
+         * 'Proto.Scip_Fields.maybe'metadata' @:: Lens' Index (Prelude.Maybe Metadata)@
+         * 'Proto.Scip_Fields.documents' @:: Lens' Index [Document]@
+         * 'Proto.Scip_Fields.vec'documents' @:: Lens' Index (Data.Vector.Vector Document)@
+         * 'Proto.Scip_Fields.externalSymbols' @:: Lens' Index [SymbolInformation]@
+         * 'Proto.Scip_Fields.vec'externalSymbols' @:: Lens' Index (Data.Vector.Vector SymbolInformation)@ -}
+data Index
+  = Index'_constructor {_Index'metadata :: !(Prelude.Maybe Metadata),
+                        _Index'documents :: !(Data.Vector.Vector Document),
+                        _Index'externalSymbols :: !(Data.Vector.Vector SymbolInformation),
+                        _Index'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Index where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Index "metadata" Metadata where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'metadata (\ x__ y__ -> x__ {_Index'metadata = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Index "maybe'metadata" (Prelude.Maybe Metadata) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'metadata (\ x__ y__ -> x__ {_Index'metadata = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Index "documents" [Document] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'documents (\ x__ y__ -> x__ {_Index'documents = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Index "vec'documents" (Data.Vector.Vector Document) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'documents (\ x__ y__ -> x__ {_Index'documents = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Index "externalSymbols" [SymbolInformation] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'externalSymbols
+           (\ x__ y__ -> x__ {_Index'externalSymbols = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Index "vec'externalSymbols" (Data.Vector.Vector SymbolInformation) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Index'externalSymbols
+           (\ x__ y__ -> x__ {_Index'externalSymbols = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Index where
+  messageName _ = Data.Text.pack "scip.Index"
+  packedMessageDescriptor _
+    = "\n\
+      \\ENQIndex\DC2*\n\
+      \\bmetadata\CAN\SOH \SOH(\v2\SO.scip.MetadataR\bmetadata\DC2,\n\
+      \\tdocuments\CAN\STX \ETX(\v2\SO.scip.DocumentR\tdocuments\DC2B\n\
+      \\DLEexternal_symbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        metadata__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "metadata"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Metadata)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'metadata")) ::
+              Data.ProtoLens.FieldDescriptor Index
+        documents__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "documents"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Document)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"documents")) ::
+              Data.ProtoLens.FieldDescriptor Index
+        externalSymbols__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "external_symbols"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"externalSymbols")) ::
+              Data.ProtoLens.FieldDescriptor Index
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, metadata__field_descriptor),
+           (Data.ProtoLens.Tag 2, documents__field_descriptor),
+           (Data.ProtoLens.Tag 3, externalSymbols__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Index'_unknownFields
+        (\ x__ y__ -> x__ {_Index'_unknownFields = y__})
+  defMessage
+    = Index'_constructor
+        {_Index'metadata = Prelude.Nothing,
+         _Index'documents = Data.Vector.Generic.empty,
+         _Index'externalSymbols = Data.Vector.Generic.empty,
+         _Index'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Index
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Document
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SymbolInformation
+                -> Data.ProtoLens.Encoding.Bytes.Parser Index
+        loop x mutable'documents mutable'externalSymbols
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'documents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                               mutable'documents)
+                      frozen'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                  (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                     mutable'externalSymbols)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'documents") frozen'documents
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'externalSymbols")
+                                 frozen'externalSymbols x)))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "metadata"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"metadata") y x)
+                                  mutable'documents mutable'externalSymbols
+                        18
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "documents"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'documents y)
+                                loop x v mutable'externalSymbols
+                        26
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "external_symbols"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'externalSymbols y)
+                                loop x mutable'documents v
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'documents mutable'externalSymbols
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'documents <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     Data.ProtoLens.Encoding.Growing.new
+              mutable'externalSymbols <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                           Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'documents
+                mutable'externalSymbols)
+          "Index"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (case
+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'metadata") _x
+              of
+                Prelude.Nothing -> Data.Monoid.mempty
+                (Prelude.Just _v)
+                  -> (Data.Monoid.<>)
+                       (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                       ((Prelude..)
+                          (\ bs
+                             -> (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                     (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                          Data.ProtoLens.encodeMessage _v))
+             ((Data.Monoid.<>)
+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                   (\ _v
+                      -> (Data.Monoid.<>)
+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                           ((Prelude..)
+                              (\ bs
+                                 -> (Data.Monoid.<>)
+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                              Data.ProtoLens.encodeMessage _v))
+                   (Lens.Family2.view
+                      (Data.ProtoLens.Field.field @"vec'documents") _x))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.ProtoLens.encodeMessage _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'externalSymbols") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Index where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Index'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Index'metadata x__)
+                (Control.DeepSeq.deepseq
+                   (_Index'documents x__)
+                   (Control.DeepSeq.deepseq (_Index'externalSymbols x__) ())))
+newtype Language'UnrecognizedValue
+  = Language'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data Language
+  = UnspecifiedLanguage |
+    CSharp |
+    Swift |
+    Dart |
+    Kotlin |
+    Scala |
+    Java |
+    Groovy |
+    Clojure |
+    CommonLisp |
+    Scheme |
+    Racket |
+    Lua |
+    Perl |
+    Raku |
+    Python |
+    Ruby |
+    Elixir |
+    Erlang |
+    PHP |
+    Hack |
+    Coffeescript |
+    JavaScript |
+    TypeScript |
+    Flow |
+    Vue |
+    CSS |
+    Less |
+    Sass |
+    SCSS |
+    HTML |
+    XML |
+    XSL |
+    Go |
+    C |
+    CPP |
+    Objective_C |
+    Objective_CPP |
+    Zig |
+    Ada |
+    Rust |
+    OCaml |
+    FSharp |
+    SML |
+    Haskell |
+    Agda |
+    Idris |
+    Coq |
+    Lean |
+    APL |
+    Dyalog |
+    J |
+    Matlab |
+    Wolfram |
+    R |
+    Julia |
+    Fortran |
+    Delphi |
+    Assembly |
+    COBOL |
+    ABAP |
+    SAS |
+    Razor |
+    VisualBasic |
+    ShellScript |
+    Fish |
+    Awk |
+    PowerShell |
+    Bat |
+    SQL |
+    PLSQL |
+    Prolog |
+    Ini |
+    TOML |
+    YAML |
+    JSON |
+    Jsonnet |
+    Nix |
+    Skylark |
+    Makefile |
+    Dockerfile |
+    BibTeX |
+    TeX |
+    LaTeX |
+    Markdown |
+    ReST |
+    AsciiDoc |
+    Diff |
+    Git_Config |
+    Handlebars |
+    Git_Commit |
+    Git_Rebase |
+    JavaScriptReact |
+    TypeScriptReact |
+    Solidity |
+    Apex |
+    CUDA |
+    GraphQL |
+    Pascal |
+    Protobuf |
+    Tcl |
+    Repro |
+    Thrift |
+    Verilog |
+    VHDL |
+    Svelte |
+    Slang |
+    Luau |
+    Justfile |
+    Nickel |
+    Language'Unrecognized !Language'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum Language where
+  maybeToEnum 0 = Prelude.Just UnspecifiedLanguage
+  maybeToEnum 1 = Prelude.Just CSharp
+  maybeToEnum 2 = Prelude.Just Swift
+  maybeToEnum 3 = Prelude.Just Dart
+  maybeToEnum 4 = Prelude.Just Kotlin
+  maybeToEnum 5 = Prelude.Just Scala
+  maybeToEnum 6 = Prelude.Just Java
+  maybeToEnum 7 = Prelude.Just Groovy
+  maybeToEnum 8 = Prelude.Just Clojure
+  maybeToEnum 9 = Prelude.Just CommonLisp
+  maybeToEnum 10 = Prelude.Just Scheme
+  maybeToEnum 11 = Prelude.Just Racket
+  maybeToEnum 12 = Prelude.Just Lua
+  maybeToEnum 13 = Prelude.Just Perl
+  maybeToEnum 14 = Prelude.Just Raku
+  maybeToEnum 15 = Prelude.Just Python
+  maybeToEnum 16 = Prelude.Just Ruby
+  maybeToEnum 17 = Prelude.Just Elixir
+  maybeToEnum 18 = Prelude.Just Erlang
+  maybeToEnum 19 = Prelude.Just PHP
+  maybeToEnum 20 = Prelude.Just Hack
+  maybeToEnum 21 = Prelude.Just Coffeescript
+  maybeToEnum 22 = Prelude.Just JavaScript
+  maybeToEnum 23 = Prelude.Just TypeScript
+  maybeToEnum 24 = Prelude.Just Flow
+  maybeToEnum 25 = Prelude.Just Vue
+  maybeToEnum 26 = Prelude.Just CSS
+  maybeToEnum 27 = Prelude.Just Less
+  maybeToEnum 28 = Prelude.Just Sass
+  maybeToEnum 29 = Prelude.Just SCSS
+  maybeToEnum 30 = Prelude.Just HTML
+  maybeToEnum 31 = Prelude.Just XML
+  maybeToEnum 32 = Prelude.Just XSL
+  maybeToEnum 33 = Prelude.Just Go
+  maybeToEnum 34 = Prelude.Just C
+  maybeToEnum 35 = Prelude.Just CPP
+  maybeToEnum 36 = Prelude.Just Objective_C
+  maybeToEnum 37 = Prelude.Just Objective_CPP
+  maybeToEnum 38 = Prelude.Just Zig
+  maybeToEnum 39 = Prelude.Just Ada
+  maybeToEnum 40 = Prelude.Just Rust
+  maybeToEnum 41 = Prelude.Just OCaml
+  maybeToEnum 42 = Prelude.Just FSharp
+  maybeToEnum 43 = Prelude.Just SML
+  maybeToEnum 44 = Prelude.Just Haskell
+  maybeToEnum 45 = Prelude.Just Agda
+  maybeToEnum 46 = Prelude.Just Idris
+  maybeToEnum 47 = Prelude.Just Coq
+  maybeToEnum 48 = Prelude.Just Lean
+  maybeToEnum 49 = Prelude.Just APL
+  maybeToEnum 50 = Prelude.Just Dyalog
+  maybeToEnum 51 = Prelude.Just J
+  maybeToEnum 52 = Prelude.Just Matlab
+  maybeToEnum 53 = Prelude.Just Wolfram
+  maybeToEnum 54 = Prelude.Just R
+  maybeToEnum 55 = Prelude.Just Julia
+  maybeToEnum 56 = Prelude.Just Fortran
+  maybeToEnum 57 = Prelude.Just Delphi
+  maybeToEnum 58 = Prelude.Just Assembly
+  maybeToEnum 59 = Prelude.Just COBOL
+  maybeToEnum 60 = Prelude.Just ABAP
+  maybeToEnum 61 = Prelude.Just SAS
+  maybeToEnum 62 = Prelude.Just Razor
+  maybeToEnum 63 = Prelude.Just VisualBasic
+  maybeToEnum 64 = Prelude.Just ShellScript
+  maybeToEnum 65 = Prelude.Just Fish
+  maybeToEnum 66 = Prelude.Just Awk
+  maybeToEnum 67 = Prelude.Just PowerShell
+  maybeToEnum 68 = Prelude.Just Bat
+  maybeToEnum 69 = Prelude.Just SQL
+  maybeToEnum 70 = Prelude.Just PLSQL
+  maybeToEnum 71 = Prelude.Just Prolog
+  maybeToEnum 72 = Prelude.Just Ini
+  maybeToEnum 73 = Prelude.Just TOML
+  maybeToEnum 74 = Prelude.Just YAML
+  maybeToEnum 75 = Prelude.Just JSON
+  maybeToEnum 76 = Prelude.Just Jsonnet
+  maybeToEnum 77 = Prelude.Just Nix
+  maybeToEnum 78 = Prelude.Just Skylark
+  maybeToEnum 79 = Prelude.Just Makefile
+  maybeToEnum 80 = Prelude.Just Dockerfile
+  maybeToEnum 81 = Prelude.Just BibTeX
+  maybeToEnum 82 = Prelude.Just TeX
+  maybeToEnum 83 = Prelude.Just LaTeX
+  maybeToEnum 84 = Prelude.Just Markdown
+  maybeToEnum 85 = Prelude.Just ReST
+  maybeToEnum 86 = Prelude.Just AsciiDoc
+  maybeToEnum 88 = Prelude.Just Diff
+  maybeToEnum 89 = Prelude.Just Git_Config
+  maybeToEnum 90 = Prelude.Just Handlebars
+  maybeToEnum 91 = Prelude.Just Git_Commit
+  maybeToEnum 92 = Prelude.Just Git_Rebase
+  maybeToEnum 93 = Prelude.Just JavaScriptReact
+  maybeToEnum 94 = Prelude.Just TypeScriptReact
+  maybeToEnum 95 = Prelude.Just Solidity
+  maybeToEnum 96 = Prelude.Just Apex
+  maybeToEnum 97 = Prelude.Just CUDA
+  maybeToEnum 98 = Prelude.Just GraphQL
+  maybeToEnum 99 = Prelude.Just Pascal
+  maybeToEnum 100 = Prelude.Just Protobuf
+  maybeToEnum 101 = Prelude.Just Tcl
+  maybeToEnum 102 = Prelude.Just Repro
+  maybeToEnum 103 = Prelude.Just Thrift
+  maybeToEnum 104 = Prelude.Just Verilog
+  maybeToEnum 105 = Prelude.Just VHDL
+  maybeToEnum 106 = Prelude.Just Svelte
+  maybeToEnum 107 = Prelude.Just Slang
+  maybeToEnum 108 = Prelude.Just Luau
+  maybeToEnum 109 = Prelude.Just Justfile
+  maybeToEnum 110 = Prelude.Just Nickel
+  maybeToEnum k
+    = Prelude.Just
+        (Language'Unrecognized
+           (Language'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedLanguage = "UnspecifiedLanguage"
+  showEnum ABAP = "ABAP"
+  showEnum Apex = "Apex"
+  showEnum APL = "APL"
+  showEnum Ada = "Ada"
+  showEnum Agda = "Agda"
+  showEnum AsciiDoc = "AsciiDoc"
+  showEnum Assembly = "Assembly"
+  showEnum Awk = "Awk"
+  showEnum Bat = "Bat"
+  showEnum BibTeX = "BibTeX"
+  showEnum C = "C"
+  showEnum COBOL = "COBOL"
+  showEnum CPP = "CPP"
+  showEnum CSS = "CSS"
+  showEnum CSharp = "CSharp"
+  showEnum Clojure = "Clojure"
+  showEnum Coffeescript = "Coffeescript"
+  showEnum CommonLisp = "CommonLisp"
+  showEnum Coq = "Coq"
+  showEnum CUDA = "CUDA"
+  showEnum Dart = "Dart"
+  showEnum Delphi = "Delphi"
+  showEnum Diff = "Diff"
+  showEnum Dockerfile = "Dockerfile"
+  showEnum Dyalog = "Dyalog"
+  showEnum Elixir = "Elixir"
+  showEnum Erlang = "Erlang"
+  showEnum FSharp = "FSharp"
+  showEnum Fish = "Fish"
+  showEnum Flow = "Flow"
+  showEnum Fortran = "Fortran"
+  showEnum Git_Commit = "Git_Commit"
+  showEnum Git_Config = "Git_Config"
+  showEnum Git_Rebase = "Git_Rebase"
+  showEnum Go = "Go"
+  showEnum GraphQL = "GraphQL"
+  showEnum Groovy = "Groovy"
+  showEnum HTML = "HTML"
+  showEnum Hack = "Hack"
+  showEnum Handlebars = "Handlebars"
+  showEnum Haskell = "Haskell"
+  showEnum Idris = "Idris"
+  showEnum Ini = "Ini"
+  showEnum J = "J"
+  showEnum JSON = "JSON"
+  showEnum Java = "Java"
+  showEnum JavaScript = "JavaScript"
+  showEnum JavaScriptReact = "JavaScriptReact"
+  showEnum Jsonnet = "Jsonnet"
+  showEnum Julia = "Julia"
+  showEnum Justfile = "Justfile"
+  showEnum Kotlin = "Kotlin"
+  showEnum LaTeX = "LaTeX"
+  showEnum Lean = "Lean"
+  showEnum Less = "Less"
+  showEnum Lua = "Lua"
+  showEnum Luau = "Luau"
+  showEnum Makefile = "Makefile"
+  showEnum Markdown = "Markdown"
+  showEnum Matlab = "Matlab"
+  showEnum Nickel = "Nickel"
+  showEnum Nix = "Nix"
+  showEnum OCaml = "OCaml"
+  showEnum Objective_C = "Objective_C"
+  showEnum Objective_CPP = "Objective_CPP"
+  showEnum Pascal = "Pascal"
+  showEnum PHP = "PHP"
+  showEnum PLSQL = "PLSQL"
+  showEnum Perl = "Perl"
+  showEnum PowerShell = "PowerShell"
+  showEnum Prolog = "Prolog"
+  showEnum Protobuf = "Protobuf"
+  showEnum Python = "Python"
+  showEnum R = "R"
+  showEnum Racket = "Racket"
+  showEnum Raku = "Raku"
+  showEnum Razor = "Razor"
+  showEnum Repro = "Repro"
+  showEnum ReST = "ReST"
+  showEnum Ruby = "Ruby"
+  showEnum Rust = "Rust"
+  showEnum SAS = "SAS"
+  showEnum SCSS = "SCSS"
+  showEnum SML = "SML"
+  showEnum SQL = "SQL"
+  showEnum Sass = "Sass"
+  showEnum Scala = "Scala"
+  showEnum Scheme = "Scheme"
+  showEnum ShellScript = "ShellScript"
+  showEnum Skylark = "Skylark"
+  showEnum Slang = "Slang"
+  showEnum Solidity = "Solidity"
+  showEnum Svelte = "Svelte"
+  showEnum Swift = "Swift"
+  showEnum Tcl = "Tcl"
+  showEnum TOML = "TOML"
+  showEnum TeX = "TeX"
+  showEnum Thrift = "Thrift"
+  showEnum TypeScript = "TypeScript"
+  showEnum TypeScriptReact = "TypeScriptReact"
+  showEnum Verilog = "Verilog"
+  showEnum VHDL = "VHDL"
+  showEnum VisualBasic = "VisualBasic"
+  showEnum Vue = "Vue"
+  showEnum Wolfram = "Wolfram"
+  showEnum XML = "XML"
+  showEnum XSL = "XSL"
+  showEnum YAML = "YAML"
+  showEnum Zig = "Zig"
+  showEnum (Language'Unrecognized (Language'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedLanguage"
+    = Prelude.Just UnspecifiedLanguage
+    | (Prelude.==) k "ABAP" = Prelude.Just ABAP
+    | (Prelude.==) k "Apex" = Prelude.Just Apex
+    | (Prelude.==) k "APL" = Prelude.Just APL
+    | (Prelude.==) k "Ada" = Prelude.Just Ada
+    | (Prelude.==) k "Agda" = Prelude.Just Agda
+    | (Prelude.==) k "AsciiDoc" = Prelude.Just AsciiDoc
+    | (Prelude.==) k "Assembly" = Prelude.Just Assembly
+    | (Prelude.==) k "Awk" = Prelude.Just Awk
+    | (Prelude.==) k "Bat" = Prelude.Just Bat
+    | (Prelude.==) k "BibTeX" = Prelude.Just BibTeX
+    | (Prelude.==) k "C" = Prelude.Just C
+    | (Prelude.==) k "COBOL" = Prelude.Just COBOL
+    | (Prelude.==) k "CPP" = Prelude.Just CPP
+    | (Prelude.==) k "CSS" = Prelude.Just CSS
+    | (Prelude.==) k "CSharp" = Prelude.Just CSharp
+    | (Prelude.==) k "Clojure" = Prelude.Just Clojure
+    | (Prelude.==) k "Coffeescript" = Prelude.Just Coffeescript
+    | (Prelude.==) k "CommonLisp" = Prelude.Just CommonLisp
+    | (Prelude.==) k "Coq" = Prelude.Just Coq
+    | (Prelude.==) k "CUDA" = Prelude.Just CUDA
+    | (Prelude.==) k "Dart" = Prelude.Just Dart
+    | (Prelude.==) k "Delphi" = Prelude.Just Delphi
+    | (Prelude.==) k "Diff" = Prelude.Just Diff
+    | (Prelude.==) k "Dockerfile" = Prelude.Just Dockerfile
+    | (Prelude.==) k "Dyalog" = Prelude.Just Dyalog
+    | (Prelude.==) k "Elixir" = Prelude.Just Elixir
+    | (Prelude.==) k "Erlang" = Prelude.Just Erlang
+    | (Prelude.==) k "FSharp" = Prelude.Just FSharp
+    | (Prelude.==) k "Fish" = Prelude.Just Fish
+    | (Prelude.==) k "Flow" = Prelude.Just Flow
+    | (Prelude.==) k "Fortran" = Prelude.Just Fortran
+    | (Prelude.==) k "Git_Commit" = Prelude.Just Git_Commit
+    | (Prelude.==) k "Git_Config" = Prelude.Just Git_Config
+    | (Prelude.==) k "Git_Rebase" = Prelude.Just Git_Rebase
+    | (Prelude.==) k "Go" = Prelude.Just Go
+    | (Prelude.==) k "GraphQL" = Prelude.Just GraphQL
+    | (Prelude.==) k "Groovy" = Prelude.Just Groovy
+    | (Prelude.==) k "HTML" = Prelude.Just HTML
+    | (Prelude.==) k "Hack" = Prelude.Just Hack
+    | (Prelude.==) k "Handlebars" = Prelude.Just Handlebars
+    | (Prelude.==) k "Haskell" = Prelude.Just Haskell
+    | (Prelude.==) k "Idris" = Prelude.Just Idris
+    | (Prelude.==) k "Ini" = Prelude.Just Ini
+    | (Prelude.==) k "J" = Prelude.Just J
+    | (Prelude.==) k "JSON" = Prelude.Just JSON
+    | (Prelude.==) k "Java" = Prelude.Just Java
+    | (Prelude.==) k "JavaScript" = Prelude.Just JavaScript
+    | (Prelude.==) k "JavaScriptReact" = Prelude.Just JavaScriptReact
+    | (Prelude.==) k "Jsonnet" = Prelude.Just Jsonnet
+    | (Prelude.==) k "Julia" = Prelude.Just Julia
+    | (Prelude.==) k "Justfile" = Prelude.Just Justfile
+    | (Prelude.==) k "Kotlin" = Prelude.Just Kotlin
+    | (Prelude.==) k "LaTeX" = Prelude.Just LaTeX
+    | (Prelude.==) k "Lean" = Prelude.Just Lean
+    | (Prelude.==) k "Less" = Prelude.Just Less
+    | (Prelude.==) k "Lua" = Prelude.Just Lua
+    | (Prelude.==) k "Luau" = Prelude.Just Luau
+    | (Prelude.==) k "Makefile" = Prelude.Just Makefile
+    | (Prelude.==) k "Markdown" = Prelude.Just Markdown
+    | (Prelude.==) k "Matlab" = Prelude.Just Matlab
+    | (Prelude.==) k "Nickel" = Prelude.Just Nickel
+    | (Prelude.==) k "Nix" = Prelude.Just Nix
+    | (Prelude.==) k "OCaml" = Prelude.Just OCaml
+    | (Prelude.==) k "Objective_C" = Prelude.Just Objective_C
+    | (Prelude.==) k "Objective_CPP" = Prelude.Just Objective_CPP
+    | (Prelude.==) k "Pascal" = Prelude.Just Pascal
+    | (Prelude.==) k "PHP" = Prelude.Just PHP
+    | (Prelude.==) k "PLSQL" = Prelude.Just PLSQL
+    | (Prelude.==) k "Perl" = Prelude.Just Perl
+    | (Prelude.==) k "PowerShell" = Prelude.Just PowerShell
+    | (Prelude.==) k "Prolog" = Prelude.Just Prolog
+    | (Prelude.==) k "Protobuf" = Prelude.Just Protobuf
+    | (Prelude.==) k "Python" = Prelude.Just Python
+    | (Prelude.==) k "R" = Prelude.Just R
+    | (Prelude.==) k "Racket" = Prelude.Just Racket
+    | (Prelude.==) k "Raku" = Prelude.Just Raku
+    | (Prelude.==) k "Razor" = Prelude.Just Razor
+    | (Prelude.==) k "Repro" = Prelude.Just Repro
+    | (Prelude.==) k "ReST" = Prelude.Just ReST
+    | (Prelude.==) k "Ruby" = Prelude.Just Ruby
+    | (Prelude.==) k "Rust" = Prelude.Just Rust
+    | (Prelude.==) k "SAS" = Prelude.Just SAS
+    | (Prelude.==) k "SCSS" = Prelude.Just SCSS
+    | (Prelude.==) k "SML" = Prelude.Just SML
+    | (Prelude.==) k "SQL" = Prelude.Just SQL
+    | (Prelude.==) k "Sass" = Prelude.Just Sass
+    | (Prelude.==) k "Scala" = Prelude.Just Scala
+    | (Prelude.==) k "Scheme" = Prelude.Just Scheme
+    | (Prelude.==) k "ShellScript" = Prelude.Just ShellScript
+    | (Prelude.==) k "Skylark" = Prelude.Just Skylark
+    | (Prelude.==) k "Slang" = Prelude.Just Slang
+    | (Prelude.==) k "Solidity" = Prelude.Just Solidity
+    | (Prelude.==) k "Svelte" = Prelude.Just Svelte
+    | (Prelude.==) k "Swift" = Prelude.Just Swift
+    | (Prelude.==) k "Tcl" = Prelude.Just Tcl
+    | (Prelude.==) k "TOML" = Prelude.Just TOML
+    | (Prelude.==) k "TeX" = Prelude.Just TeX
+    | (Prelude.==) k "Thrift" = Prelude.Just Thrift
+    | (Prelude.==) k "TypeScript" = Prelude.Just TypeScript
+    | (Prelude.==) k "TypeScriptReact" = Prelude.Just TypeScriptReact
+    | (Prelude.==) k "Verilog" = Prelude.Just Verilog
+    | (Prelude.==) k "VHDL" = Prelude.Just VHDL
+    | (Prelude.==) k "VisualBasic" = Prelude.Just VisualBasic
+    | (Prelude.==) k "Vue" = Prelude.Just Vue
+    | (Prelude.==) k "Wolfram" = Prelude.Just Wolfram
+    | (Prelude.==) k "XML" = Prelude.Just XML
+    | (Prelude.==) k "XSL" = Prelude.Just XSL
+    | (Prelude.==) k "YAML" = Prelude.Just YAML
+    | (Prelude.==) k "Zig" = Prelude.Just Zig
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded Language where
+  minBound = UnspecifiedLanguage
+  maxBound = Nickel
+instance Prelude.Enum Language where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum Language: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedLanguage = 0
+  fromEnum CSharp = 1
+  fromEnum Swift = 2
+  fromEnum Dart = 3
+  fromEnum Kotlin = 4
+  fromEnum Scala = 5
+  fromEnum Java = 6
+  fromEnum Groovy = 7
+  fromEnum Clojure = 8
+  fromEnum CommonLisp = 9
+  fromEnum Scheme = 10
+  fromEnum Racket = 11
+  fromEnum Lua = 12
+  fromEnum Perl = 13
+  fromEnum Raku = 14
+  fromEnum Python = 15
+  fromEnum Ruby = 16
+  fromEnum Elixir = 17
+  fromEnum Erlang = 18
+  fromEnum PHP = 19
+  fromEnum Hack = 20
+  fromEnum Coffeescript = 21
+  fromEnum JavaScript = 22
+  fromEnum TypeScript = 23
+  fromEnum Flow = 24
+  fromEnum Vue = 25
+  fromEnum CSS = 26
+  fromEnum Less = 27
+  fromEnum Sass = 28
+  fromEnum SCSS = 29
+  fromEnum HTML = 30
+  fromEnum XML = 31
+  fromEnum XSL = 32
+  fromEnum Go = 33
+  fromEnum C = 34
+  fromEnum CPP = 35
+  fromEnum Objective_C = 36
+  fromEnum Objective_CPP = 37
+  fromEnum Zig = 38
+  fromEnum Ada = 39
+  fromEnum Rust = 40
+  fromEnum OCaml = 41
+  fromEnum FSharp = 42
+  fromEnum SML = 43
+  fromEnum Haskell = 44
+  fromEnum Agda = 45
+  fromEnum Idris = 46
+  fromEnum Coq = 47
+  fromEnum Lean = 48
+  fromEnum APL = 49
+  fromEnum Dyalog = 50
+  fromEnum J = 51
+  fromEnum Matlab = 52
+  fromEnum Wolfram = 53
+  fromEnum R = 54
+  fromEnum Julia = 55
+  fromEnum Fortran = 56
+  fromEnum Delphi = 57
+  fromEnum Assembly = 58
+  fromEnum COBOL = 59
+  fromEnum ABAP = 60
+  fromEnum SAS = 61
+  fromEnum Razor = 62
+  fromEnum VisualBasic = 63
+  fromEnum ShellScript = 64
+  fromEnum Fish = 65
+  fromEnum Awk = 66
+  fromEnum PowerShell = 67
+  fromEnum Bat = 68
+  fromEnum SQL = 69
+  fromEnum PLSQL = 70
+  fromEnum Prolog = 71
+  fromEnum Ini = 72
+  fromEnum TOML = 73
+  fromEnum YAML = 74
+  fromEnum JSON = 75
+  fromEnum Jsonnet = 76
+  fromEnum Nix = 77
+  fromEnum Skylark = 78
+  fromEnum Makefile = 79
+  fromEnum Dockerfile = 80
+  fromEnum BibTeX = 81
+  fromEnum TeX = 82
+  fromEnum LaTeX = 83
+  fromEnum Markdown = 84
+  fromEnum ReST = 85
+  fromEnum AsciiDoc = 86
+  fromEnum Diff = 88
+  fromEnum Git_Config = 89
+  fromEnum Handlebars = 90
+  fromEnum Git_Commit = 91
+  fromEnum Git_Rebase = 92
+  fromEnum JavaScriptReact = 93
+  fromEnum TypeScriptReact = 94
+  fromEnum Solidity = 95
+  fromEnum Apex = 96
+  fromEnum CUDA = 97
+  fromEnum GraphQL = 98
+  fromEnum Pascal = 99
+  fromEnum Protobuf = 100
+  fromEnum Tcl = 101
+  fromEnum Repro = 102
+  fromEnum Thrift = 103
+  fromEnum Verilog = 104
+  fromEnum VHDL = 105
+  fromEnum Svelte = 106
+  fromEnum Slang = 107
+  fromEnum Luau = 108
+  fromEnum Justfile = 109
+  fromEnum Nickel = 110
+  fromEnum (Language'Unrecognized (Language'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ Nickel
+    = Prelude.error
+        "Language.succ: bad argument Nickel. This value would be out of bounds."
+  succ UnspecifiedLanguage = CSharp
+  succ CSharp = Swift
+  succ Swift = Dart
+  succ Dart = Kotlin
+  succ Kotlin = Scala
+  succ Scala = Java
+  succ Java = Groovy
+  succ Groovy = Clojure
+  succ Clojure = CommonLisp
+  succ CommonLisp = Scheme
+  succ Scheme = Racket
+  succ Racket = Lua
+  succ Lua = Perl
+  succ Perl = Raku
+  succ Raku = Python
+  succ Python = Ruby
+  succ Ruby = Elixir
+  succ Elixir = Erlang
+  succ Erlang = PHP
+  succ PHP = Hack
+  succ Hack = Coffeescript
+  succ Coffeescript = JavaScript
+  succ JavaScript = TypeScript
+  succ TypeScript = Flow
+  succ Flow = Vue
+  succ Vue = CSS
+  succ CSS = Less
+  succ Less = Sass
+  succ Sass = SCSS
+  succ SCSS = HTML
+  succ HTML = XML
+  succ XML = XSL
+  succ XSL = Go
+  succ Go = C
+  succ C = CPP
+  succ CPP = Objective_C
+  succ Objective_C = Objective_CPP
+  succ Objective_CPP = Zig
+  succ Zig = Ada
+  succ Ada = Rust
+  succ Rust = OCaml
+  succ OCaml = FSharp
+  succ FSharp = SML
+  succ SML = Haskell
+  succ Haskell = Agda
+  succ Agda = Idris
+  succ Idris = Coq
+  succ Coq = Lean
+  succ Lean = APL
+  succ APL = Dyalog
+  succ Dyalog = J
+  succ J = Matlab
+  succ Matlab = Wolfram
+  succ Wolfram = R
+  succ R = Julia
+  succ Julia = Fortran
+  succ Fortran = Delphi
+  succ Delphi = Assembly
+  succ Assembly = COBOL
+  succ COBOL = ABAP
+  succ ABAP = SAS
+  succ SAS = Razor
+  succ Razor = VisualBasic
+  succ VisualBasic = ShellScript
+  succ ShellScript = Fish
+  succ Fish = Awk
+  succ Awk = PowerShell
+  succ PowerShell = Bat
+  succ Bat = SQL
+  succ SQL = PLSQL
+  succ PLSQL = Prolog
+  succ Prolog = Ini
+  succ Ini = TOML
+  succ TOML = YAML
+  succ YAML = JSON
+  succ JSON = Jsonnet
+  succ Jsonnet = Nix
+  succ Nix = Skylark
+  succ Skylark = Makefile
+  succ Makefile = Dockerfile
+  succ Dockerfile = BibTeX
+  succ BibTeX = TeX
+  succ TeX = LaTeX
+  succ LaTeX = Markdown
+  succ Markdown = ReST
+  succ ReST = AsciiDoc
+  succ AsciiDoc = Diff
+  succ Diff = Git_Config
+  succ Git_Config = Handlebars
+  succ Handlebars = Git_Commit
+  succ Git_Commit = Git_Rebase
+  succ Git_Rebase = JavaScriptReact
+  succ JavaScriptReact = TypeScriptReact
+  succ TypeScriptReact = Solidity
+  succ Solidity = Apex
+  succ Apex = CUDA
+  succ CUDA = GraphQL
+  succ GraphQL = Pascal
+  succ Pascal = Protobuf
+  succ Protobuf = Tcl
+  succ Tcl = Repro
+  succ Repro = Thrift
+  succ Thrift = Verilog
+  succ Verilog = VHDL
+  succ VHDL = Svelte
+  succ Svelte = Slang
+  succ Slang = Luau
+  succ Luau = Justfile
+  succ Justfile = Nickel
+  succ (Language'Unrecognized _)
+    = Prelude.error "Language.succ: bad argument: unrecognized value"
+  pred UnspecifiedLanguage
+    = Prelude.error
+        "Language.pred: bad argument UnspecifiedLanguage. This value would be out of bounds."
+  pred CSharp = UnspecifiedLanguage
+  pred Swift = CSharp
+  pred Dart = Swift
+  pred Kotlin = Dart
+  pred Scala = Kotlin
+  pred Java = Scala
+  pred Groovy = Java
+  pred Clojure = Groovy
+  pred CommonLisp = Clojure
+  pred Scheme = CommonLisp
+  pred Racket = Scheme
+  pred Lua = Racket
+  pred Perl = Lua
+  pred Raku = Perl
+  pred Python = Raku
+  pred Ruby = Python
+  pred Elixir = Ruby
+  pred Erlang = Elixir
+  pred PHP = Erlang
+  pred Hack = PHP
+  pred Coffeescript = Hack
+  pred JavaScript = Coffeescript
+  pred TypeScript = JavaScript
+  pred Flow = TypeScript
+  pred Vue = Flow
+  pred CSS = Vue
+  pred Less = CSS
+  pred Sass = Less
+  pred SCSS = Sass
+  pred HTML = SCSS
+  pred XML = HTML
+  pred XSL = XML
+  pred Go = XSL
+  pred C = Go
+  pred CPP = C
+  pred Objective_C = CPP
+  pred Objective_CPP = Objective_C
+  pred Zig = Objective_CPP
+  pred Ada = Zig
+  pred Rust = Ada
+  pred OCaml = Rust
+  pred FSharp = OCaml
+  pred SML = FSharp
+  pred Haskell = SML
+  pred Agda = Haskell
+  pred Idris = Agda
+  pred Coq = Idris
+  pred Lean = Coq
+  pred APL = Lean
+  pred Dyalog = APL
+  pred J = Dyalog
+  pred Matlab = J
+  pred Wolfram = Matlab
+  pred R = Wolfram
+  pred Julia = R
+  pred Fortran = Julia
+  pred Delphi = Fortran
+  pred Assembly = Delphi
+  pred COBOL = Assembly
+  pred ABAP = COBOL
+  pred SAS = ABAP
+  pred Razor = SAS
+  pred VisualBasic = Razor
+  pred ShellScript = VisualBasic
+  pred Fish = ShellScript
+  pred Awk = Fish
+  pred PowerShell = Awk
+  pred Bat = PowerShell
+  pred SQL = Bat
+  pred PLSQL = SQL
+  pred Prolog = PLSQL
+  pred Ini = Prolog
+  pred TOML = Ini
+  pred YAML = TOML
+  pred JSON = YAML
+  pred Jsonnet = JSON
+  pred Nix = Jsonnet
+  pred Skylark = Nix
+  pred Makefile = Skylark
+  pred Dockerfile = Makefile
+  pred BibTeX = Dockerfile
+  pred TeX = BibTeX
+  pred LaTeX = TeX
+  pred Markdown = LaTeX
+  pred ReST = Markdown
+  pred AsciiDoc = ReST
+  pred Diff = AsciiDoc
+  pred Git_Config = Diff
+  pred Handlebars = Git_Config
+  pred Git_Commit = Handlebars
+  pred Git_Rebase = Git_Commit
+  pred JavaScriptReact = Git_Rebase
+  pred TypeScriptReact = JavaScriptReact
+  pred Solidity = TypeScriptReact
+  pred Apex = Solidity
+  pred CUDA = Apex
+  pred GraphQL = CUDA
+  pred Pascal = GraphQL
+  pred Protobuf = Pascal
+  pred Tcl = Protobuf
+  pred Repro = Tcl
+  pred Thrift = Repro
+  pred Verilog = Thrift
+  pred VHDL = Verilog
+  pred Svelte = VHDL
+  pred Slang = Svelte
+  pred Luau = Slang
+  pred Justfile = Luau
+  pred Nickel = Justfile
+  pred (Language'Unrecognized _)
+    = Prelude.error "Language.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault Language where
+  fieldDefault = UnspecifiedLanguage
+instance Control.DeepSeq.NFData Language where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.version' @:: Lens' Metadata ProtocolVersion@
+         * 'Proto.Scip_Fields.toolInfo' @:: Lens' Metadata ToolInfo@
+         * 'Proto.Scip_Fields.maybe'toolInfo' @:: Lens' Metadata (Prelude.Maybe ToolInfo)@
+         * 'Proto.Scip_Fields.projectRoot' @:: Lens' Metadata Data.Text.Text@
+         * 'Proto.Scip_Fields.textDocumentEncoding' @:: Lens' Metadata TextEncoding@ -}
+data Metadata
+  = Metadata'_constructor {_Metadata'version :: !ProtocolVersion,
+                           _Metadata'toolInfo :: !(Prelude.Maybe ToolInfo),
+                           _Metadata'projectRoot :: !Data.Text.Text,
+                           _Metadata'textDocumentEncoding :: !TextEncoding,
+                           _Metadata'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Metadata where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Metadata "version" ProtocolVersion where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'version (\ x__ y__ -> x__ {_Metadata'version = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Metadata "toolInfo" ToolInfo where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'toolInfo (\ x__ y__ -> x__ {_Metadata'toolInfo = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Metadata "maybe'toolInfo" (Prelude.Maybe ToolInfo) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'toolInfo (\ x__ y__ -> x__ {_Metadata'toolInfo = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Metadata "projectRoot" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'projectRoot
+           (\ x__ y__ -> x__ {_Metadata'projectRoot = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Metadata "textDocumentEncoding" TextEncoding where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Metadata'textDocumentEncoding
+           (\ x__ y__ -> x__ {_Metadata'textDocumentEncoding = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Metadata where
+  messageName _ = Data.Text.pack "scip.Metadata"
+  packedMessageDescriptor _
+    = "\n\
+      \\bMetadata\DC2/\n\
+      \\aversion\CAN\SOH \SOH(\SO2\NAK.scip.ProtocolVersionR\aversion\DC2+\n\
+      \\ttool_info\CAN\STX \SOH(\v2\SO.scip.ToolInfoR\btoolInfo\DC2!\n\
+      \\fproject_root\CAN\ETX \SOH(\tR\vprojectRoot\DC2H\n\
+      \\SYNtext_document_encoding\CAN\EOT \SOH(\SO2\DC2.scip.TextEncodingR\DC4textDocumentEncoding"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        version__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "version"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor ProtocolVersion)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+        toolInfo__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "tool_info"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor ToolInfo)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'toolInfo")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+        projectRoot__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "project_root"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"projectRoot")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+        textDocumentEncoding__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "text_document_encoding"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor TextEncoding)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"textDocumentEncoding")) ::
+              Data.ProtoLens.FieldDescriptor Metadata
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, version__field_descriptor),
+           (Data.ProtoLens.Tag 2, toolInfo__field_descriptor),
+           (Data.ProtoLens.Tag 3, projectRoot__field_descriptor),
+           (Data.ProtoLens.Tag 4, textDocumentEncoding__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Metadata'_unknownFields
+        (\ x__ y__ -> x__ {_Metadata'_unknownFields = y__})
+  defMessage
+    = Metadata'_constructor
+        {_Metadata'version = Data.ProtoLens.fieldDefault,
+         _Metadata'toolInfo = Prelude.Nothing,
+         _Metadata'projectRoot = Data.ProtoLens.fieldDefault,
+         _Metadata'textDocumentEncoding = Data.ProtoLens.fieldDefault,
+         _Metadata'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Metadata -> Data.ProtoLens.Encoding.Bytes.Parser Metadata
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "version"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "tool_info"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"toolInfo") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "project_root"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"projectRoot") y x)
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "text_document_encoding"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"textDocumentEncoding") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "Metadata"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                      ((Prelude..)
+                         ((Prelude..)
+                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                         Prelude.fromEnum _v))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'toolInfo") _x
+                 of
+                   Prelude.Nothing -> Data.Monoid.mempty
+                   (Prelude.Just _v)
+                     -> (Data.Monoid.<>)
+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                          ((Prelude..)
+                             (\ bs
+                                -> (Data.Monoid.<>)
+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                             Data.ProtoLens.encodeMessage _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v
+                        = Lens.Family2.view (Data.ProtoLens.Field.field @"projectRoot") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                            ((Prelude..)
+                               (\ bs
+                                  -> (Data.Monoid.<>)
+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                               Data.Text.Encoding.encodeUtf8 _v))
+                   ((Data.Monoid.<>)
+                      (let
+                         _v
+                           = Lens.Family2.view
+                               (Data.ProtoLens.Field.field @"textDocumentEncoding") _x
+                       in
+                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                             Data.Monoid.mempty
+                         else
+                             (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
+                               ((Prelude..)
+                                  ((Prelude..)
+                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                                  Prelude.fromEnum _v))
+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
+instance Control.DeepSeq.NFData Metadata where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Metadata'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Metadata'version x__)
+                (Control.DeepSeq.deepseq
+                   (_Metadata'toolInfo x__)
+                   (Control.DeepSeq.deepseq
+                      (_Metadata'projectRoot x__)
+                      (Control.DeepSeq.deepseq
+                         (_Metadata'textDocumentEncoding x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.startLine' @:: Lens' MultiLineRange Data.Int.Int32@
+         * 'Proto.Scip_Fields.startCharacter' @:: Lens' MultiLineRange Data.Int.Int32@
+         * 'Proto.Scip_Fields.endLine' @:: Lens' MultiLineRange Data.Int.Int32@
+         * 'Proto.Scip_Fields.endCharacter' @:: Lens' MultiLineRange Data.Int.Int32@ -}
+data MultiLineRange
+  = MultiLineRange'_constructor {_MultiLineRange'startLine :: !Data.Int.Int32,
+                                 _MultiLineRange'startCharacter :: !Data.Int.Int32,
+                                 _MultiLineRange'endLine :: !Data.Int.Int32,
+                                 _MultiLineRange'endCharacter :: !Data.Int.Int32,
+                                 _MultiLineRange'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show MultiLineRange where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField MultiLineRange "startLine" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MultiLineRange'startLine
+           (\ x__ y__ -> x__ {_MultiLineRange'startLine = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MultiLineRange "startCharacter" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MultiLineRange'startCharacter
+           (\ x__ y__ -> x__ {_MultiLineRange'startCharacter = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MultiLineRange "endLine" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MultiLineRange'endLine
+           (\ x__ y__ -> x__ {_MultiLineRange'endLine = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField MultiLineRange "endCharacter" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _MultiLineRange'endCharacter
+           (\ x__ y__ -> x__ {_MultiLineRange'endCharacter = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message MultiLineRange where
+  messageName _ = Data.Text.pack "scip.MultiLineRange"
+  packedMessageDescriptor _
+    = "\n\
+      \\SOMultiLineRange\DC2\GS\n\
+      \\n\
+      \start_line\CAN\SOH \SOH(\ENQR\tstartLine\DC2'\n\
+      \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2\EM\n\
+      \\bend_line\CAN\ETX \SOH(\ENQR\aendLine\DC2#\n\
+      \\rend_character\CAN\EOT \SOH(\ENQR\fendCharacter"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        startLine__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "start_line"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"startLine")) ::
+              Data.ProtoLens.FieldDescriptor MultiLineRange
+        startCharacter__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "start_character"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"startCharacter")) ::
+              Data.ProtoLens.FieldDescriptor MultiLineRange
+        endLine__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "end_line"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"endLine")) ::
+              Data.ProtoLens.FieldDescriptor MultiLineRange
+        endCharacter__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "end_character"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"endCharacter")) ::
+              Data.ProtoLens.FieldDescriptor MultiLineRange
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, startLine__field_descriptor),
+           (Data.ProtoLens.Tag 2, startCharacter__field_descriptor),
+           (Data.ProtoLens.Tag 3, endLine__field_descriptor),
+           (Data.ProtoLens.Tag 4, endCharacter__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _MultiLineRange'_unknownFields
+        (\ x__ y__ -> x__ {_MultiLineRange'_unknownFields = y__})
+  defMessage
+    = MultiLineRange'_constructor
+        {_MultiLineRange'startLine = Data.ProtoLens.fieldDefault,
+         _MultiLineRange'startCharacter = Data.ProtoLens.fieldDefault,
+         _MultiLineRange'endLine = Data.ProtoLens.fieldDefault,
+         _MultiLineRange'endCharacter = Data.ProtoLens.fieldDefault,
+         _MultiLineRange'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          MultiLineRange
+          -> Data.ProtoLens.Encoding.Bytes.Parser MultiLineRange
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "start_line"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"startLine") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "start_character"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"startCharacter") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "end_line"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"endLine") y x)
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "end_character"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"endCharacter") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "MultiLineRange"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"startLine") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                      ((Prelude..)
+                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v
+                     = Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"startCharacter") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
+                         ((Prelude..)
+                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"endLine") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
+                            ((Prelude..)
+                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                   ((Data.Monoid.<>)
+                      (let
+                         _v
+                           = Lens.Family2.view (Data.ProtoLens.Field.field @"endCharacter") _x
+                       in
+                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                             Data.Monoid.mempty
+                         else
+                             (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
+                               ((Prelude..)
+                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                      (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                         (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))
+instance Control.DeepSeq.NFData MultiLineRange where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_MultiLineRange'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_MultiLineRange'startLine x__)
+                (Control.DeepSeq.deepseq
+                   (_MultiLineRange'startCharacter x__)
+                   (Control.DeepSeq.deepseq
+                      (_MultiLineRange'endLine x__)
+                      (Control.DeepSeq.deepseq (_MultiLineRange'endCharacter x__) ()))))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.range' @:: Lens' Occurrence [Data.Int.Int32]@
+         * 'Proto.Scip_Fields.vec'range' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@
+         * 'Proto.Scip_Fields.symbol' @:: Lens' Occurrence Data.Text.Text@
+         * 'Proto.Scip_Fields.symbolRoles' @:: Lens' Occurrence Data.Int.Int32@
+         * 'Proto.Scip_Fields.overrideDocumentation' @:: Lens' Occurrence [Data.Text.Text]@
+         * 'Proto.Scip_Fields.vec'overrideDocumentation' @:: Lens' Occurrence (Data.Vector.Vector Data.Text.Text)@
+         * 'Proto.Scip_Fields.syntaxKind' @:: Lens' Occurrence SyntaxKind@
+         * 'Proto.Scip_Fields.diagnostics' @:: Lens' Occurrence [Diagnostic]@
+         * 'Proto.Scip_Fields.vec'diagnostics' @:: Lens' Occurrence (Data.Vector.Vector Diagnostic)@
+         * 'Proto.Scip_Fields.enclosingRange' @:: Lens' Occurrence [Data.Int.Int32]@
+         * 'Proto.Scip_Fields.vec'enclosingRange' @:: Lens' Occurrence (Data.Vector.Unboxed.Vector Data.Int.Int32)@
+         * 'Proto.Scip_Fields.maybe'typedRange' @:: Lens' Occurrence (Prelude.Maybe Occurrence'TypedRange)@
+         * 'Proto.Scip_Fields.maybe'singleLineRange' @:: Lens' Occurrence (Prelude.Maybe SingleLineRange)@
+         * 'Proto.Scip_Fields.singleLineRange' @:: Lens' Occurrence SingleLineRange@
+         * 'Proto.Scip_Fields.maybe'multiLineRange' @:: Lens' Occurrence (Prelude.Maybe MultiLineRange)@
+         * 'Proto.Scip_Fields.multiLineRange' @:: Lens' Occurrence MultiLineRange@
+         * 'Proto.Scip_Fields.maybe'typedEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe Occurrence'TypedEnclosingRange)@
+         * 'Proto.Scip_Fields.maybe'singleLineEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe SingleLineRange)@
+         * 'Proto.Scip_Fields.singleLineEnclosingRange' @:: Lens' Occurrence SingleLineRange@
+         * 'Proto.Scip_Fields.maybe'multiLineEnclosingRange' @:: Lens' Occurrence (Prelude.Maybe MultiLineRange)@
+         * 'Proto.Scip_Fields.multiLineEnclosingRange' @:: Lens' Occurrence MultiLineRange@ -}
+data Occurrence
+  = Occurrence'_constructor {_Occurrence'range :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),
+                             _Occurrence'symbol :: !Data.Text.Text,
+                             _Occurrence'symbolRoles :: !Data.Int.Int32,
+                             _Occurrence'overrideDocumentation :: !(Data.Vector.Vector Data.Text.Text),
+                             _Occurrence'syntaxKind :: !SyntaxKind,
+                             _Occurrence'diagnostics :: !(Data.Vector.Vector Diagnostic),
+                             _Occurrence'enclosingRange :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),
+                             _Occurrence'typedRange :: !(Prelude.Maybe Occurrence'TypedRange),
+                             _Occurrence'typedEnclosingRange :: !(Prelude.Maybe Occurrence'TypedEnclosingRange),
+                             _Occurrence'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Occurrence where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+data Occurrence'TypedRange
+  = Occurrence'SingleLineRange !SingleLineRange |
+    Occurrence'MultiLineRange !MultiLineRange
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+data Occurrence'TypedEnclosingRange
+  = Occurrence'SingleLineEnclosingRange !SingleLineRange |
+    Occurrence'MultiLineEnclosingRange !MultiLineRange
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.Field.HasField Occurrence "range" [Data.Int.Int32] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'range (\ x__ y__ -> x__ {_Occurrence'range = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Occurrence "vec'range" (Data.Vector.Unboxed.Vector Data.Int.Int32) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'range (\ x__ y__ -> x__ {_Occurrence'range = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "symbol" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'symbol (\ x__ y__ -> x__ {_Occurrence'symbol = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "symbolRoles" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'symbolRoles
+           (\ x__ y__ -> x__ {_Occurrence'symbolRoles = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "overrideDocumentation" [Data.Text.Text] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'overrideDocumentation
+           (\ x__ y__ -> x__ {_Occurrence'overrideDocumentation = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Occurrence "vec'overrideDocumentation" (Data.Vector.Vector Data.Text.Text) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'overrideDocumentation
+           (\ x__ y__ -> x__ {_Occurrence'overrideDocumentation = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "syntaxKind" SyntaxKind where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'syntaxKind
+           (\ x__ y__ -> x__ {_Occurrence'syntaxKind = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "diagnostics" [Diagnostic] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'diagnostics
+           (\ x__ y__ -> x__ {_Occurrence'diagnostics = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Occurrence "vec'diagnostics" (Data.Vector.Vector Diagnostic) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'diagnostics
+           (\ x__ y__ -> x__ {_Occurrence'diagnostics = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "enclosingRange" [Data.Int.Int32] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'enclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'enclosingRange = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Occurrence "vec'enclosingRange" (Data.Vector.Unboxed.Vector Data.Int.Int32) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'enclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'enclosingRange = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'typedRange" (Prelude.Maybe Occurrence'TypedRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedRange
+           (\ x__ y__ -> x__ {_Occurrence'typedRange = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'singleLineRange" (Prelude.Maybe SingleLineRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedRange
+           (\ x__ y__ -> x__ {_Occurrence'typedRange = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Occurrence'SingleLineRange x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Occurrence'SingleLineRange y__))
+instance Data.ProtoLens.Field.HasField Occurrence "singleLineRange" SingleLineRange where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedRange
+           (\ x__ y__ -> x__ {_Occurrence'typedRange = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Occurrence'SingleLineRange x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Occurrence'SingleLineRange y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'multiLineRange" (Prelude.Maybe MultiLineRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedRange
+           (\ x__ y__ -> x__ {_Occurrence'typedRange = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Occurrence'MultiLineRange x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Occurrence'MultiLineRange y__))
+instance Data.ProtoLens.Field.HasField Occurrence "multiLineRange" MultiLineRange where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedRange
+           (\ x__ y__ -> x__ {_Occurrence'typedRange = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Occurrence'MultiLineRange x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Occurrence'MultiLineRange y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'typedEnclosingRange" (Prelude.Maybe Occurrence'TypedEnclosingRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedEnclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'singleLineEnclosingRange" (Prelude.Maybe SingleLineRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedEnclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Occurrence'SingleLineEnclosingRange x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Occurrence'SingleLineEnclosingRange y__))
+instance Data.ProtoLens.Field.HasField Occurrence "singleLineEnclosingRange" SingleLineRange where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedEnclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Occurrence'SingleLineEnclosingRange x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Occurrence'SingleLineEnclosingRange y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Field.HasField Occurrence "maybe'multiLineEnclosingRange" (Prelude.Maybe MultiLineRange) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedEnclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__}))
+        (Lens.Family2.Unchecked.lens
+           (\ x__
+              -> case x__ of
+                   (Prelude.Just (Occurrence'MultiLineEnclosingRange x__val))
+                     -> Prelude.Just x__val
+                   _otherwise -> Prelude.Nothing)
+           (\ _ y__ -> Prelude.fmap Occurrence'MultiLineEnclosingRange y__))
+instance Data.ProtoLens.Field.HasField Occurrence "multiLineEnclosingRange" MultiLineRange where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Occurrence'typedEnclosingRange
+           (\ x__ y__ -> x__ {_Occurrence'typedEnclosingRange = y__}))
+        ((Prelude..)
+           (Lens.Family2.Unchecked.lens
+              (\ x__
+                 -> case x__ of
+                      (Prelude.Just (Occurrence'MultiLineEnclosingRange x__val))
+                        -> Prelude.Just x__val
+                      _otherwise -> Prelude.Nothing)
+              (\ _ y__ -> Prelude.fmap Occurrence'MultiLineEnclosingRange y__))
+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))
+instance Data.ProtoLens.Message Occurrence where
+  messageName _ = Data.Text.pack "scip.Occurrence"
+  packedMessageDescriptor _
+    = "\n\
+      \\n\
+      \Occurrence\DC2\CAN\n\
+      \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrangeB\STX\CAN\SOH\DC2C\n\
+      \\DC1single_line_range\CAN\b \SOH(\v2\NAK.scip.SingleLineRangeH\NULR\SIsingleLineRange\DC2@\n\
+      \\DLEmulti_line_range\CAN\t \SOH(\v2\DC4.scip.MultiLineRangeH\NULR\SOmultiLineRange\DC2\SYN\n\
+      \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\
+      \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\
+      \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\
+      \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\
+      \syntaxKind\DC22\n\
+      \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2+\n\
+      \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRangeB\STX\CAN\SOH\DC2V\n\
+      \\ESCsingle_line_enclosing_range\CAN\n\
+      \ \SOH(\v2\NAK.scip.SingleLineRangeH\SOHR\CANsingleLineEnclosingRange\DC2S\n\
+      \\SUBmulti_line_enclosing_range\CAN\v \SOH(\v2\DC4.scip.MultiLineRangeH\SOHR\ETBmultiLineEnclosingRangeB\r\n\
+      \\vtyped_rangeB\ETB\n\
+      \\NAKtyped_enclosing_range"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        range__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "range"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"range")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        symbol__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "symbol"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        symbolRoles__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "symbol_roles"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"symbolRoles")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        overrideDocumentation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "override_documentation"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"overrideDocumentation")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        syntaxKind__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "syntax_kind"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor SyntaxKind)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"syntaxKind")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        diagnostics__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "diagnostics"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Diagnostic)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"diagnostics")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        enclosingRange__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "enclosing_range"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Packed
+                 (Data.ProtoLens.Field.field @"enclosingRange")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        singleLineRange__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "single_line_range"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor SingleLineRange)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'singleLineRange")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        multiLineRange__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "multi_line_range"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MultiLineRange)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'multiLineRange")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        singleLineEnclosingRange__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "single_line_enclosing_range"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor SingleLineRange)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'singleLineEnclosingRange")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+        multiLineEnclosingRange__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "multi_line_enclosing_range"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor MultiLineRange)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'multiLineEnclosingRange")) ::
+              Data.ProtoLens.FieldDescriptor Occurrence
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, range__field_descriptor),
+           (Data.ProtoLens.Tag 2, symbol__field_descriptor),
+           (Data.ProtoLens.Tag 3, symbolRoles__field_descriptor),
+           (Data.ProtoLens.Tag 4, overrideDocumentation__field_descriptor),
+           (Data.ProtoLens.Tag 5, syntaxKind__field_descriptor),
+           (Data.ProtoLens.Tag 6, diagnostics__field_descriptor),
+           (Data.ProtoLens.Tag 7, enclosingRange__field_descriptor),
+           (Data.ProtoLens.Tag 8, singleLineRange__field_descriptor),
+           (Data.ProtoLens.Tag 9, multiLineRange__field_descriptor),
+           (Data.ProtoLens.Tag 10, 
+            singleLineEnclosingRange__field_descriptor),
+           (Data.ProtoLens.Tag 11, multiLineEnclosingRange__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Occurrence'_unknownFields
+        (\ x__ y__ -> x__ {_Occurrence'_unknownFields = y__})
+  defMessage
+    = Occurrence'_constructor
+        {_Occurrence'range = Data.Vector.Generic.empty,
+         _Occurrence'symbol = Data.ProtoLens.fieldDefault,
+         _Occurrence'symbolRoles = Data.ProtoLens.fieldDefault,
+         _Occurrence'overrideDocumentation = Data.Vector.Generic.empty,
+         _Occurrence'syntaxKind = Data.ProtoLens.fieldDefault,
+         _Occurrence'diagnostics = Data.Vector.Generic.empty,
+         _Occurrence'enclosingRange = Data.Vector.Generic.empty,
+         _Occurrence'typedRange = Prelude.Nothing,
+         _Occurrence'typedEnclosingRange = Prelude.Nothing,
+         _Occurrence'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Occurrence
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Diagnostic
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32
+                -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
+                   -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32
+                      -> Data.ProtoLens.Encoding.Bytes.Parser Occurrence
+        loop
+          x
+          mutable'diagnostics
+          mutable'enclosingRange
+          mutable'overrideDocumentation
+          mutable'range
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'diagnostics <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'diagnostics)
+                      frozen'enclosingRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                 (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                    mutable'enclosingRange)
+                      frozen'overrideDocumentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                           mutable'overrideDocumentation)
+                      frozen'range <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'range)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'diagnostics") frozen'diagnostics
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'enclosingRange")
+                                 frozen'enclosingRange
+                                 (Lens.Family2.set
+                                    (Data.ProtoLens.Field.field @"vec'overrideDocumentation")
+                                    frozen'overrideDocumentation
+                                    (Lens.Family2.set
+                                       (Data.ProtoLens.Field.field @"vec'range") frozen'range x)))))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (Prelude.fmap
+                                           Prelude.fromIntegral
+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                        "range"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'range y)
+                                loop
+                                  x mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation v
+                        10
+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                        Data.ProtoLens.Encoding.Bytes.isolate
+                                          (Prelude.fromIntegral len)
+                                          ((let
+                                              ploop qs
+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
+                                                     if packedEnd then
+                                                         Prelude.return qs
+                                                     else
+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                                                    (Prelude.fmap
+                                                                       Prelude.fromIntegral
+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                                                    "range"
+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                                     (Data.ProtoLens.Encoding.Growing.append
+                                                                        qs q)
+                                                            ploop qs'
+                                            in ploop)
+                                             mutable'range)
+                                loop
+                                  x mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation y
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "symbol"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "symbol_roles"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbolRoles") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        34
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.getText
+                                              (Prelude.fromIntegral len))
+                                        "override_documentation"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'overrideDocumentation y)
+                                loop x mutable'diagnostics mutable'enclosingRange v mutable'range
+                        40
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "syntax_kind"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"syntaxKind") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        50
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "diagnostics"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'diagnostics y)
+                                loop
+                                  x v mutable'enclosingRange mutable'overrideDocumentation
+                                  mutable'range
+                        56
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (Prelude.fmap
+                                           Prelude.fromIntegral
+                                           Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                        "enclosing_range"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'enclosingRange y)
+                                loop
+                                  x mutable'diagnostics v mutable'overrideDocumentation
+                                  mutable'range
+                        58
+                          -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                        Data.ProtoLens.Encoding.Bytes.isolate
+                                          (Prelude.fromIntegral len)
+                                          ((let
+                                              ploop qs
+                                                = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd
+                                                     if packedEnd then
+                                                         Prelude.return qs
+                                                     else
+                                                         do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                                                    (Prelude.fmap
+                                                                       Prelude.fromIntegral
+                                                                       Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                                                    "enclosing_range"
+                                                            qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                                     (Data.ProtoLens.Encoding.Growing.append
+                                                                        qs q)
+                                                            ploop qs'
+                                            in ploop)
+                                             mutable'enclosingRange)
+                                loop
+                                  x mutable'diagnostics y mutable'overrideDocumentation
+                                  mutable'range
+                        66
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "single_line_range"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"singleLineRange") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        74
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "multi_line_range"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"multiLineRange") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        82
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "single_line_enclosing_range"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"singleLineEnclosingRange") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        90
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "multi_line_enclosing_range"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"multiLineEnclosingRange") y x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'diagnostics mutable'enclosingRange
+                                  mutable'overrideDocumentation mutable'range
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'diagnostics <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              mutable'enclosingRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                          Data.ProtoLens.Encoding.Growing.new
+              mutable'overrideDocumentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                 Data.ProtoLens.Encoding.Growing.new
+              mutable'range <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                 Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'diagnostics
+                mutable'enclosingRange mutable'overrideDocumentation mutable'range)
+          "Occurrence"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'range") _x
+              in
+                if Data.Vector.Generic.null p then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((\ bs
+                          -> (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                  (Prelude.fromIntegral (Data.ByteString.length bs)))
+                               (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         (Data.ProtoLens.Encoding.Bytes.runBuilder
+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                               ((Prelude..)
+                                  Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                               p))))
+             ((Data.Monoid.<>)
+                (let
+                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v
+                        = Lens.Family2.view (Data.ProtoLens.Field.field @"symbolRoles") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
+                            ((Prelude..)
+                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                   ((Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                         (\ _v
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
+                                 ((Prelude..)
+                                    (\ bs
+                                       -> (Data.Monoid.<>)
+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                               (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                            (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                    Data.Text.Encoding.encodeUtf8 _v))
+                         (Lens.Family2.view
+                            (Data.ProtoLens.Field.field @"vec'overrideDocumentation") _x))
+                      ((Data.Monoid.<>)
+                         (let
+                            _v
+                              = Lens.Family2.view (Data.ProtoLens.Field.field @"syntaxKind") _x
+                          in
+                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                Data.Monoid.mempty
+                            else
+                                (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
+                                  ((Prelude..)
+                                     ((Prelude..)
+                                        Data.ProtoLens.Encoding.Bytes.putVarInt
+                                        Prelude.fromIntegral)
+                                     Prelude.fromEnum _v))
+                         ((Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                               (\ _v
+                                  -> (Data.Monoid.<>)
+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
+                                       ((Prelude..)
+                                          (\ bs
+                                             -> (Data.Monoid.<>)
+                                                  (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                     (Prelude.fromIntegral
+                                                        (Data.ByteString.length bs)))
+                                                  (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                          Data.ProtoLens.encodeMessage _v))
+                               (Lens.Family2.view
+                                  (Data.ProtoLens.Field.field @"vec'diagnostics") _x))
+                            ((Data.Monoid.<>)
+                               (let
+                                  p = Lens.Family2.view
+                                        (Data.ProtoLens.Field.field @"vec'enclosingRange") _x
+                                in
+                                  if Data.Vector.Generic.null p then
+                                      Data.Monoid.mempty
+                                  else
+                                      (Data.Monoid.<>)
+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
+                                        ((\ bs
+                                            -> (Data.Monoid.<>)
+                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                    (Prelude.fromIntegral
+                                                       (Data.ByteString.length bs)))
+                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                           (Data.ProtoLens.Encoding.Bytes.runBuilder
+                                              (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                                                 ((Prelude..)
+                                                    Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                    Prelude.fromIntegral)
+                                                 p))))
+                               ((Data.Monoid.<>)
+                                  (case
+                                       Lens.Family2.view
+                                         (Data.ProtoLens.Field.field @"maybe'typedRange") _x
+                                   of
+                                     Prelude.Nothing -> Data.Monoid.mempty
+                                     (Prelude.Just (Occurrence'SingleLineRange v))
+                                       -> (Data.Monoid.<>)
+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
+                                            ((Prelude..)
+                                               (\ bs
+                                                  -> (Data.Monoid.<>)
+                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                          (Prelude.fromIntegral
+                                                             (Data.ByteString.length bs)))
+                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                               Data.ProtoLens.encodeMessage v)
+                                     (Prelude.Just (Occurrence'MultiLineRange v))
+                                       -> (Data.Monoid.<>)
+                                            (Data.ProtoLens.Encoding.Bytes.putVarInt 74)
+                                            ((Prelude..)
+                                               (\ bs
+                                                  -> (Data.Monoid.<>)
+                                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                          (Prelude.fromIntegral
+                                                             (Data.ByteString.length bs)))
+                                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                               Data.ProtoLens.encodeMessage v))
+                                  ((Data.Monoid.<>)
+                                     (case
+                                          Lens.Family2.view
+                                            (Data.ProtoLens.Field.field
+                                               @"maybe'typedEnclosingRange")
+                                            _x
+                                      of
+                                        Prelude.Nothing -> Data.Monoid.mempty
+                                        (Prelude.Just (Occurrence'SingleLineEnclosingRange v))
+                                          -> (Data.Monoid.<>)
+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 82)
+                                               ((Prelude..)
+                                                  (\ bs
+                                                     -> (Data.Monoid.<>)
+                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                             (Prelude.fromIntegral
+                                                                (Data.ByteString.length bs)))
+                                                          (Data.ProtoLens.Encoding.Bytes.putBytes
+                                                             bs))
+                                                  Data.ProtoLens.encodeMessage v)
+                                        (Prelude.Just (Occurrence'MultiLineEnclosingRange v))
+                                          -> (Data.Monoid.<>)
+                                               (Data.ProtoLens.Encoding.Bytes.putVarInt 90)
+                                               ((Prelude..)
+                                                  (\ bs
+                                                     -> (Data.Monoid.<>)
+                                                          (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                             (Prelude.fromIntegral
+                                                                (Data.ByteString.length bs)))
+                                                          (Data.ProtoLens.Encoding.Bytes.putBytes
+                                                             bs))
+                                                  Data.ProtoLens.encodeMessage v))
+                                     (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                                        (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))))
+instance Control.DeepSeq.NFData Occurrence where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Occurrence'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Occurrence'range x__)
+                (Control.DeepSeq.deepseq
+                   (_Occurrence'symbol x__)
+                   (Control.DeepSeq.deepseq
+                      (_Occurrence'symbolRoles x__)
+                      (Control.DeepSeq.deepseq
+                         (_Occurrence'overrideDocumentation x__)
+                         (Control.DeepSeq.deepseq
+                            (_Occurrence'syntaxKind x__)
+                            (Control.DeepSeq.deepseq
+                               (_Occurrence'diagnostics x__)
+                               (Control.DeepSeq.deepseq
+                                  (_Occurrence'enclosingRange x__)
+                                  (Control.DeepSeq.deepseq
+                                     (_Occurrence'typedRange x__)
+                                     (Control.DeepSeq.deepseq
+                                        (_Occurrence'typedEnclosingRange x__) ())))))))))
+instance Control.DeepSeq.NFData Occurrence'TypedRange where
+  rnf (Occurrence'SingleLineRange x__) = Control.DeepSeq.rnf x__
+  rnf (Occurrence'MultiLineRange x__) = Control.DeepSeq.rnf x__
+instance Control.DeepSeq.NFData Occurrence'TypedEnclosingRange where
+  rnf (Occurrence'SingleLineEnclosingRange x__)
+    = Control.DeepSeq.rnf x__
+  rnf (Occurrence'MultiLineEnclosingRange x__)
+    = Control.DeepSeq.rnf x__
+_Occurrence'SingleLineRange ::
+  Data.ProtoLens.Prism.Prism' Occurrence'TypedRange SingleLineRange
+_Occurrence'SingleLineRange
+  = Data.ProtoLens.Prism.prism'
+      Occurrence'SingleLineRange
+      (\ p__
+         -> case p__ of
+              (Occurrence'SingleLineRange p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Occurrence'MultiLineRange ::
+  Data.ProtoLens.Prism.Prism' Occurrence'TypedRange MultiLineRange
+_Occurrence'MultiLineRange
+  = Data.ProtoLens.Prism.prism'
+      Occurrence'MultiLineRange
+      (\ p__
+         -> case p__ of
+              (Occurrence'MultiLineRange p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Occurrence'SingleLineEnclosingRange ::
+  Data.ProtoLens.Prism.Prism' Occurrence'TypedEnclosingRange SingleLineRange
+_Occurrence'SingleLineEnclosingRange
+  = Data.ProtoLens.Prism.prism'
+      Occurrence'SingleLineEnclosingRange
+      (\ p__
+         -> case p__ of
+              (Occurrence'SingleLineEnclosingRange p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+_Occurrence'MultiLineEnclosingRange ::
+  Data.ProtoLens.Prism.Prism' Occurrence'TypedEnclosingRange MultiLineRange
+_Occurrence'MultiLineEnclosingRange
+  = Data.ProtoLens.Prism.prism'
+      Occurrence'MultiLineEnclosingRange
+      (\ p__
+         -> case p__ of
+              (Occurrence'MultiLineEnclosingRange p__val) -> Prelude.Just p__val
+              _otherwise -> Prelude.Nothing)
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.manager' @:: Lens' Package Data.Text.Text@
+         * 'Proto.Scip_Fields.name' @:: Lens' Package Data.Text.Text@
+         * 'Proto.Scip_Fields.version' @:: Lens' Package Data.Text.Text@ -}
+data Package
+  = Package'_constructor {_Package'manager :: !Data.Text.Text,
+                          _Package'name :: !Data.Text.Text,
+                          _Package'version :: !Data.Text.Text,
+                          _Package'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Package where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Package "manager" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Package'manager (\ x__ y__ -> x__ {_Package'manager = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Package "name" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Package'name (\ x__ y__ -> x__ {_Package'name = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Package "version" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Package'version (\ x__ y__ -> x__ {_Package'version = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Package where
+  messageName _ = Data.Text.pack "scip.Package"
+  packedMessageDescriptor _
+    = "\n\
+      \\aPackage\DC2\CAN\n\
+      \\amanager\CAN\SOH \SOH(\tR\amanager\DC2\DC2\n\
+      \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\CAN\n\
+      \\aversion\CAN\ETX \SOH(\tR\aversion"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        manager__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "manager"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"manager")) ::
+              Data.ProtoLens.FieldDescriptor Package
+        name__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
+              Data.ProtoLens.FieldDescriptor Package
+        version__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "version"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
+              Data.ProtoLens.FieldDescriptor Package
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, manager__field_descriptor),
+           (Data.ProtoLens.Tag 2, name__field_descriptor),
+           (Data.ProtoLens.Tag 3, version__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Package'_unknownFields
+        (\ x__ y__ -> x__ {_Package'_unknownFields = y__})
+  defMessage
+    = Package'_constructor
+        {_Package'manager = Data.ProtoLens.fieldDefault,
+         _Package'name = Data.ProtoLens.fieldDefault,
+         _Package'version = Data.ProtoLens.fieldDefault,
+         _Package'_unknownFields = []}
+  parseMessage
+    = let
+        loop :: Package -> Data.ProtoLens.Encoding.Bytes.Parser Package
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "manager"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"manager") y x)
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "name"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
+                        26
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "version"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "Package"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"manager") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                            ((Prelude..)
+                               (\ bs
+                                  -> (Data.Monoid.<>)
+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                          (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                               Data.Text.Encoding.encodeUtf8 _v))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Package where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Package'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Package'manager x__)
+                (Control.DeepSeq.deepseq
+                   (_Package'name x__)
+                   (Control.DeepSeq.deepseq (_Package'version x__) ())))
+newtype PositionEncoding'UnrecognizedValue
+  = PositionEncoding'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data PositionEncoding
+  = UnspecifiedPositionEncoding |
+    UTF8CodeUnitOffsetFromLineStart |
+    UTF16CodeUnitOffsetFromLineStart |
+    UTF32CodeUnitOffsetFromLineStart |
+    PositionEncoding'Unrecognized !PositionEncoding'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum PositionEncoding where
+  maybeToEnum 0 = Prelude.Just UnspecifiedPositionEncoding
+  maybeToEnum 1 = Prelude.Just UTF8CodeUnitOffsetFromLineStart
+  maybeToEnum 2 = Prelude.Just UTF16CodeUnitOffsetFromLineStart
+  maybeToEnum 3 = Prelude.Just UTF32CodeUnitOffsetFromLineStart
+  maybeToEnum k
+    = Prelude.Just
+        (PositionEncoding'Unrecognized
+           (PositionEncoding'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedPositionEncoding
+    = "UnspecifiedPositionEncoding"
+  showEnum UTF8CodeUnitOffsetFromLineStart
+    = "UTF8CodeUnitOffsetFromLineStart"
+  showEnum UTF16CodeUnitOffsetFromLineStart
+    = "UTF16CodeUnitOffsetFromLineStart"
+  showEnum UTF32CodeUnitOffsetFromLineStart
+    = "UTF32CodeUnitOffsetFromLineStart"
+  showEnum
+    (PositionEncoding'Unrecognized (PositionEncoding'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedPositionEncoding"
+    = Prelude.Just UnspecifiedPositionEncoding
+    | (Prelude.==) k "UTF8CodeUnitOffsetFromLineStart"
+    = Prelude.Just UTF8CodeUnitOffsetFromLineStart
+    | (Prelude.==) k "UTF16CodeUnitOffsetFromLineStart"
+    = Prelude.Just UTF16CodeUnitOffsetFromLineStart
+    | (Prelude.==) k "UTF32CodeUnitOffsetFromLineStart"
+    = Prelude.Just UTF32CodeUnitOffsetFromLineStart
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded PositionEncoding where
+  minBound = UnspecifiedPositionEncoding
+  maxBound = UTF32CodeUnitOffsetFromLineStart
+instance Prelude.Enum PositionEncoding where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum PositionEncoding: "
+              (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedPositionEncoding = 0
+  fromEnum UTF8CodeUnitOffsetFromLineStart = 1
+  fromEnum UTF16CodeUnitOffsetFromLineStart = 2
+  fromEnum UTF32CodeUnitOffsetFromLineStart = 3
+  fromEnum
+    (PositionEncoding'Unrecognized (PositionEncoding'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ UTF32CodeUnitOffsetFromLineStart
+    = Prelude.error
+        "PositionEncoding.succ: bad argument UTF32CodeUnitOffsetFromLineStart. This value would be out of bounds."
+  succ UnspecifiedPositionEncoding = UTF8CodeUnitOffsetFromLineStart
+  succ UTF8CodeUnitOffsetFromLineStart
+    = UTF16CodeUnitOffsetFromLineStart
+  succ UTF16CodeUnitOffsetFromLineStart
+    = UTF32CodeUnitOffsetFromLineStart
+  succ (PositionEncoding'Unrecognized _)
+    = Prelude.error
+        "PositionEncoding.succ: bad argument: unrecognized value"
+  pred UnspecifiedPositionEncoding
+    = Prelude.error
+        "PositionEncoding.pred: bad argument UnspecifiedPositionEncoding. This value would be out of bounds."
+  pred UTF8CodeUnitOffsetFromLineStart = UnspecifiedPositionEncoding
+  pred UTF16CodeUnitOffsetFromLineStart
+    = UTF8CodeUnitOffsetFromLineStart
+  pred UTF32CodeUnitOffsetFromLineStart
+    = UTF16CodeUnitOffsetFromLineStart
+  pred (PositionEncoding'Unrecognized _)
+    = Prelude.error
+        "PositionEncoding.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault PositionEncoding where
+  fieldDefault = UnspecifiedPositionEncoding
+instance Control.DeepSeq.NFData PositionEncoding where
+  rnf x__ = Prelude.seq x__ ()
+newtype ProtocolVersion'UnrecognizedValue
+  = ProtocolVersion'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data ProtocolVersion
+  = UnspecifiedProtocolVersion |
+    ProtocolVersion'Unrecognized !ProtocolVersion'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum ProtocolVersion where
+  maybeToEnum 0 = Prelude.Just UnspecifiedProtocolVersion
+  maybeToEnum k
+    = Prelude.Just
+        (ProtocolVersion'Unrecognized
+           (ProtocolVersion'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedProtocolVersion = "UnspecifiedProtocolVersion"
+  showEnum
+    (ProtocolVersion'Unrecognized (ProtocolVersion'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedProtocolVersion"
+    = Prelude.Just UnspecifiedProtocolVersion
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded ProtocolVersion where
+  minBound = UnspecifiedProtocolVersion
+  maxBound = UnspecifiedProtocolVersion
+instance Prelude.Enum ProtocolVersion where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum ProtocolVersion: "
+              (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedProtocolVersion = 0
+  fromEnum
+    (ProtocolVersion'Unrecognized (ProtocolVersion'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ UnspecifiedProtocolVersion
+    = Prelude.error
+        "ProtocolVersion.succ: bad argument UnspecifiedProtocolVersion. This value would be out of bounds."
+  succ (ProtocolVersion'Unrecognized _)
+    = Prelude.error
+        "ProtocolVersion.succ: bad argument: unrecognized value"
+  pred UnspecifiedProtocolVersion
+    = Prelude.error
+        "ProtocolVersion.pred: bad argument UnspecifiedProtocolVersion. This value would be out of bounds."
+  pred (ProtocolVersion'Unrecognized _)
+    = Prelude.error
+        "ProtocolVersion.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault ProtocolVersion where
+  fieldDefault = UnspecifiedProtocolVersion
+instance Control.DeepSeq.NFData ProtocolVersion where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.symbol' @:: Lens' Relationship Data.Text.Text@
+         * 'Proto.Scip_Fields.isReference' @:: Lens' Relationship Prelude.Bool@
+         * 'Proto.Scip_Fields.isImplementation' @:: Lens' Relationship Prelude.Bool@
+         * 'Proto.Scip_Fields.isTypeDefinition' @:: Lens' Relationship Prelude.Bool@
+         * 'Proto.Scip_Fields.isDefinition' @:: Lens' Relationship Prelude.Bool@ -}
+data Relationship
+  = Relationship'_constructor {_Relationship'symbol :: !Data.Text.Text,
+                               _Relationship'isReference :: !Prelude.Bool,
+                               _Relationship'isImplementation :: !Prelude.Bool,
+                               _Relationship'isTypeDefinition :: !Prelude.Bool,
+                               _Relationship'isDefinition :: !Prelude.Bool,
+                               _Relationship'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Relationship where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Relationship "symbol" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relationship'symbol
+           (\ x__ y__ -> x__ {_Relationship'symbol = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relationship "isReference" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relationship'isReference
+           (\ x__ y__ -> x__ {_Relationship'isReference = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relationship "isImplementation" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relationship'isImplementation
+           (\ x__ y__ -> x__ {_Relationship'isImplementation = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relationship "isTypeDefinition" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relationship'isTypeDefinition
+           (\ x__ y__ -> x__ {_Relationship'isTypeDefinition = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Relationship "isDefinition" Prelude.Bool where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Relationship'isDefinition
+           (\ x__ y__ -> x__ {_Relationship'isDefinition = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Relationship where
+  messageName _ = Data.Text.pack "scip.Relationship"
+  packedMessageDescriptor _
+    = "\n\
+      \\fRelationship\DC2\SYN\n\
+      \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2!\n\
+      \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\
+      \\DC1is_implementation\CAN\ETX \SOH(\bR\DLEisImplementation\DC2,\n\
+      \\DC2is_type_definition\CAN\EOT \SOH(\bR\DLEisTypeDefinition\DC2#\n\
+      \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        symbol__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "symbol"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
+              Data.ProtoLens.FieldDescriptor Relationship
+        isReference__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "is_reference"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"isReference")) ::
+              Data.ProtoLens.FieldDescriptor Relationship
+        isImplementation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "is_implementation"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"isImplementation")) ::
+              Data.ProtoLens.FieldDescriptor Relationship
+        isTypeDefinition__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "is_type_definition"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"isTypeDefinition")) ::
+              Data.ProtoLens.FieldDescriptor Relationship
+        isDefinition__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "is_definition"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::
+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"isDefinition")) ::
+              Data.ProtoLens.FieldDescriptor Relationship
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, symbol__field_descriptor),
+           (Data.ProtoLens.Tag 2, isReference__field_descriptor),
+           (Data.ProtoLens.Tag 3, isImplementation__field_descriptor),
+           (Data.ProtoLens.Tag 4, isTypeDefinition__field_descriptor),
+           (Data.ProtoLens.Tag 5, isDefinition__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Relationship'_unknownFields
+        (\ x__ y__ -> x__ {_Relationship'_unknownFields = y__})
+  defMessage
+    = Relationship'_constructor
+        {_Relationship'symbol = Data.ProtoLens.fieldDefault,
+         _Relationship'isReference = Data.ProtoLens.fieldDefault,
+         _Relationship'isImplementation = Data.ProtoLens.fieldDefault,
+         _Relationship'isTypeDefinition = Data.ProtoLens.fieldDefault,
+         _Relationship'isDefinition = Data.ProtoLens.fieldDefault,
+         _Relationship'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Relationship -> Data.ProtoLens.Encoding.Bytes.Parser Relationship
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "symbol"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "is_reference"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"isReference") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "is_implementation"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"isImplementation") y x)
+                        32
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "is_type_definition"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"isTypeDefinition") y x)
+                        40
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "is_definition"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"isDefinition") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "Relationship"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v
+                     = Lens.Family2.view (Data.ProtoLens.Field.field @"isReference") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
+                         ((Prelude..)
+                            Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
+                            _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v
+                        = Lens.Family2.view
+                            (Data.ProtoLens.Field.field @"isImplementation") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
+                            ((Prelude..)
+                               Data.ProtoLens.Encoding.Bytes.putVarInt (\ b -> if b then 1 else 0)
+                               _v))
+                   ((Data.Monoid.<>)
+                      (let
+                         _v
+                           = Lens.Family2.view
+                               (Data.ProtoLens.Field.field @"isTypeDefinition") _x
+                       in
+                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                             Data.Monoid.mempty
+                         else
+                             (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt 32)
+                               ((Prelude..)
+                                  Data.ProtoLens.Encoding.Bytes.putVarInt
+                                  (\ b -> if b then 1 else 0) _v))
+                      ((Data.Monoid.<>)
+                         (let
+                            _v
+                              = Lens.Family2.view (Data.ProtoLens.Field.field @"isDefinition") _x
+                          in
+                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                Data.Monoid.mempty
+                            else
+                                (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
+                                  ((Prelude..)
+                                     Data.ProtoLens.Encoding.Bytes.putVarInt
+                                     (\ b -> if b then 1 else 0) _v))
+                         (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                            (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))
+instance Control.DeepSeq.NFData Relationship where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Relationship'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Relationship'symbol x__)
+                (Control.DeepSeq.deepseq
+                   (_Relationship'isReference x__)
+                   (Control.DeepSeq.deepseq
+                      (_Relationship'isImplementation x__)
+                      (Control.DeepSeq.deepseq
+                         (_Relationship'isTypeDefinition x__)
+                         (Control.DeepSeq.deepseq (_Relationship'isDefinition x__) ())))))
+newtype Severity'UnrecognizedValue
+  = Severity'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data Severity
+  = UnspecifiedSeverity |
+    Error |
+    Warning |
+    Information |
+    Hint |
+    Severity'Unrecognized !Severity'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum Severity where
+  maybeToEnum 0 = Prelude.Just UnspecifiedSeverity
+  maybeToEnum 1 = Prelude.Just Error
+  maybeToEnum 2 = Prelude.Just Warning
+  maybeToEnum 3 = Prelude.Just Information
+  maybeToEnum 4 = Prelude.Just Hint
+  maybeToEnum k
+    = Prelude.Just
+        (Severity'Unrecognized
+           (Severity'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedSeverity = "UnspecifiedSeverity"
+  showEnum Error = "Error"
+  showEnum Warning = "Warning"
+  showEnum Information = "Information"
+  showEnum Hint = "Hint"
+  showEnum (Severity'Unrecognized (Severity'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedSeverity"
+    = Prelude.Just UnspecifiedSeverity
+    | (Prelude.==) k "Error" = Prelude.Just Error
+    | (Prelude.==) k "Warning" = Prelude.Just Warning
+    | (Prelude.==) k "Information" = Prelude.Just Information
+    | (Prelude.==) k "Hint" = Prelude.Just Hint
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded Severity where
+  minBound = UnspecifiedSeverity
+  maxBound = Hint
+instance Prelude.Enum Severity where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum Severity: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedSeverity = 0
+  fromEnum Error = 1
+  fromEnum Warning = 2
+  fromEnum Information = 3
+  fromEnum Hint = 4
+  fromEnum (Severity'Unrecognized (Severity'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ Hint
+    = Prelude.error
+        "Severity.succ: bad argument Hint. This value would be out of bounds."
+  succ UnspecifiedSeverity = Error
+  succ Error = Warning
+  succ Warning = Information
+  succ Information = Hint
+  succ (Severity'Unrecognized _)
+    = Prelude.error "Severity.succ: bad argument: unrecognized value"
+  pred UnspecifiedSeverity
+    = Prelude.error
+        "Severity.pred: bad argument UnspecifiedSeverity. This value would be out of bounds."
+  pred Error = UnspecifiedSeverity
+  pred Warning = Error
+  pred Information = Warning
+  pred Hint = Information
+  pred (Severity'Unrecognized _)
+    = Prelude.error "Severity.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault Severity where
+  fieldDefault = UnspecifiedSeverity
+instance Control.DeepSeq.NFData Severity where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.language' @:: Lens' Signature Data.Text.Text@
+         * 'Proto.Scip_Fields.text' @:: Lens' Signature Data.Text.Text@
+         * 'Proto.Scip_Fields.occurrences' @:: Lens' Signature [Occurrence]@
+         * 'Proto.Scip_Fields.vec'occurrences' @:: Lens' Signature (Data.Vector.Vector Occurrence)@ -}
+data Signature
+  = Signature'_constructor {_Signature'language :: !Data.Text.Text,
+                            _Signature'text :: !Data.Text.Text,
+                            _Signature'occurrences :: !(Data.Vector.Vector Occurrence),
+                            _Signature'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Signature where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Signature "language" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Signature'language (\ x__ y__ -> x__ {_Signature'language = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Signature "text" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Signature'text (\ x__ y__ -> x__ {_Signature'text = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Signature "occurrences" [Occurrence] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Signature'occurrences
+           (\ x__ y__ -> x__ {_Signature'occurrences = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Signature "vec'occurrences" (Data.Vector.Vector Occurrence) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Signature'occurrences
+           (\ x__ y__ -> x__ {_Signature'occurrences = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Signature where
+  messageName _ = Data.Text.pack "scip.Signature"
+  packedMessageDescriptor _
+    = "\n\
+      \\tSignature\DC2\SUB\n\
+      \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2\DC2\n\
+      \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC22\n\
+      \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrencesJ\EOT\b\SOH\DLE\STXJ\EOT\b\ETX\DLE\EOTJ\EOT\b\ACK\DLE\a"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        language__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "language"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"language")) ::
+              Data.ProtoLens.FieldDescriptor Signature
+        text__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "text"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"text")) ::
+              Data.ProtoLens.FieldDescriptor Signature
+        occurrences__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "occurrences"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Occurrence)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"occurrences")) ::
+              Data.ProtoLens.FieldDescriptor Signature
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 4, language__field_descriptor),
+           (Data.ProtoLens.Tag 5, text__field_descriptor),
+           (Data.ProtoLens.Tag 2, occurrences__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Signature'_unknownFields
+        (\ x__ y__ -> x__ {_Signature'_unknownFields = y__})
+  defMessage
+    = Signature'_constructor
+        {_Signature'language = Data.ProtoLens.fieldDefault,
+         _Signature'text = Data.ProtoLens.fieldDefault,
+         _Signature'occurrences = Data.Vector.Generic.empty,
+         _Signature'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Signature
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Occurrence
+             -> Data.ProtoLens.Encoding.Bytes.Parser Signature
+        loop x mutable'occurrences
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'occurrences)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'occurrences") frozen'occurrences
+                              x))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        34
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "language"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"language") y x)
+                                  mutable'occurrences
+                        42
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "text"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"text") y x)
+                                  mutable'occurrences
+                        18
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "occurrences"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'occurrences y)
+                                loop x v
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'occurrences
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'occurrences <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'occurrences)
+          "Signature"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"language") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"text") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 42)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.ProtoLens.encodeMessage _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'occurrences") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Signature where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Signature'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Signature'language x__)
+                (Control.DeepSeq.deepseq
+                   (_Signature'text x__)
+                   (Control.DeepSeq.deepseq (_Signature'occurrences x__) ())))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.line' @:: Lens' SingleLineRange Data.Int.Int32@
+         * 'Proto.Scip_Fields.startCharacter' @:: Lens' SingleLineRange Data.Int.Int32@
+         * 'Proto.Scip_Fields.endCharacter' @:: Lens' SingleLineRange Data.Int.Int32@ -}
+data SingleLineRange
+  = SingleLineRange'_constructor {_SingleLineRange'line :: !Data.Int.Int32,
+                                  _SingleLineRange'startCharacter :: !Data.Int.Int32,
+                                  _SingleLineRange'endCharacter :: !Data.Int.Int32,
+                                  _SingleLineRange'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show SingleLineRange where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField SingleLineRange "line" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SingleLineRange'line
+           (\ x__ y__ -> x__ {_SingleLineRange'line = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SingleLineRange "startCharacter" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SingleLineRange'startCharacter
+           (\ x__ y__ -> x__ {_SingleLineRange'startCharacter = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SingleLineRange "endCharacter" Data.Int.Int32 where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SingleLineRange'endCharacter
+           (\ x__ y__ -> x__ {_SingleLineRange'endCharacter = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message SingleLineRange where
+  messageName _ = Data.Text.pack "scip.SingleLineRange"
+  packedMessageDescriptor _
+    = "\n\
+      \\SISingleLineRange\DC2\DC2\n\
+      \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2'\n\
+      \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2#\n\
+      \\rend_character\CAN\ETX \SOH(\ENQR\fendCharacter"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        line__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "line"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"line")) ::
+              Data.ProtoLens.FieldDescriptor SingleLineRange
+        startCharacter__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "start_character"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"startCharacter")) ::
+              Data.ProtoLens.FieldDescriptor SingleLineRange
+        endCharacter__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "end_character"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"endCharacter")) ::
+              Data.ProtoLens.FieldDescriptor SingleLineRange
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, line__field_descriptor),
+           (Data.ProtoLens.Tag 2, startCharacter__field_descriptor),
+           (Data.ProtoLens.Tag 3, endCharacter__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _SingleLineRange'_unknownFields
+        (\ x__ y__ -> x__ {_SingleLineRange'_unknownFields = y__})
+  defMessage
+    = SingleLineRange'_constructor
+        {_SingleLineRange'line = Data.ProtoLens.fieldDefault,
+         _SingleLineRange'startCharacter = Data.ProtoLens.fieldDefault,
+         _SingleLineRange'endCharacter = Data.ProtoLens.fieldDefault,
+         _SingleLineRange'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          SingleLineRange
+          -> Data.ProtoLens.Encoding.Bytes.Parser SingleLineRange
+        loop x
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "line"
+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"line") y x)
+                        16
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "start_character"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"startCharacter") y x)
+                        24
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.fromIntegral
+                                          Data.ProtoLens.Encoding.Bytes.getVarInt)
+                                       "end_character"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"endCharacter") y x)
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do loop Data.ProtoLens.defMessage) "SingleLineRange"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"line") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)
+                      ((Prelude..)
+                         Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v
+                     = Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"startCharacter") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 16)
+                         ((Prelude..)
+                            Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                ((Data.Monoid.<>)
+                   (let
+                      _v
+                        = Lens.Family2.view (Data.ProtoLens.Field.field @"endCharacter") _x
+                    in
+                      if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                          Data.Monoid.mempty
+                      else
+                          (Data.Monoid.<>)
+                            (Data.ProtoLens.Encoding.Bytes.putVarInt 24)
+                            ((Prelude..)
+                               Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData SingleLineRange where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_SingleLineRange'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_SingleLineRange'line x__)
+                (Control.DeepSeq.deepseq
+                   (_SingleLineRange'startCharacter x__)
+                   (Control.DeepSeq.deepseq (_SingleLineRange'endCharacter x__) ())))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.scheme' @:: Lens' Symbol Data.Text.Text@
+         * 'Proto.Scip_Fields.package' @:: Lens' Symbol Package@
+         * 'Proto.Scip_Fields.maybe'package' @:: Lens' Symbol (Prelude.Maybe Package)@
+         * 'Proto.Scip_Fields.descriptors' @:: Lens' Symbol [Descriptor]@
+         * 'Proto.Scip_Fields.vec'descriptors' @:: Lens' Symbol (Data.Vector.Vector Descriptor)@ -}
+data Symbol
+  = Symbol'_constructor {_Symbol'scheme :: !Data.Text.Text,
+                         _Symbol'package :: !(Prelude.Maybe Package),
+                         _Symbol'descriptors :: !(Data.Vector.Vector Descriptor),
+                         _Symbol'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show Symbol where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField Symbol "scheme" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Symbol'scheme (\ x__ y__ -> x__ {_Symbol'scheme = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Symbol "package" Package where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Symbol'package (\ x__ y__ -> x__ {_Symbol'package = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField Symbol "maybe'package" (Prelude.Maybe Package) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Symbol'package (\ x__ y__ -> x__ {_Symbol'package = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField Symbol "descriptors" [Descriptor] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Symbol'descriptors (\ x__ y__ -> x__ {_Symbol'descriptors = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField Symbol "vec'descriptors" (Data.Vector.Vector Descriptor) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _Symbol'descriptors (\ x__ y__ -> x__ {_Symbol'descriptors = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message Symbol where
+  messageName _ = Data.Text.pack "scip.Symbol"
+  packedMessageDescriptor _
+    = "\n\
+      \\ACKSymbol\DC2\SYN\n\
+      \\ACKscheme\CAN\SOH \SOH(\tR\ACKscheme\DC2'\n\
+      \\apackage\CAN\STX \SOH(\v2\r.scip.PackageR\apackage\DC22\n\
+      \\vdescriptors\CAN\ETX \ETX(\v2\DLE.scip.DescriptorR\vdescriptors"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        scheme__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "scheme"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"scheme")) ::
+              Data.ProtoLens.FieldDescriptor Symbol
+        package__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "package"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Package)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'package")) ::
+              Data.ProtoLens.FieldDescriptor Symbol
+        descriptors__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "descriptors"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Descriptor)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"descriptors")) ::
+              Data.ProtoLens.FieldDescriptor Symbol
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, scheme__field_descriptor),
+           (Data.ProtoLens.Tag 2, package__field_descriptor),
+           (Data.ProtoLens.Tag 3, descriptors__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _Symbol'_unknownFields
+        (\ x__ y__ -> x__ {_Symbol'_unknownFields = y__})
+  defMessage
+    = Symbol'_constructor
+        {_Symbol'scheme = Data.ProtoLens.fieldDefault,
+         _Symbol'package = Prelude.Nothing,
+         _Symbol'descriptors = Data.Vector.Generic.empty,
+         _Symbol'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          Symbol
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Descriptor
+             -> Data.ProtoLens.Encoding.Bytes.Parser Symbol
+        loop x mutable'descriptors
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'descriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                              (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                 mutable'descriptors)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'descriptors") frozen'descriptors
+                              x))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "scheme"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"scheme") y x)
+                                  mutable'descriptors
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "package"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"package") y x)
+                                  mutable'descriptors
+                        26
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "descriptors"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'descriptors y)
+                                loop x v
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'descriptors
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'descriptors <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'descriptors)
+          "Symbol"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"scheme") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (case
+                     Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'package") _x
+                 of
+                   Prelude.Nothing -> Data.Monoid.mempty
+                   (Prelude.Just _v)
+                     -> (Data.Monoid.<>)
+                          (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                          ((Prelude..)
+                             (\ bs
+                                -> (Data.Monoid.<>)
+                                     (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                        (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                     (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                             Data.ProtoLens.encodeMessage _v))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.ProtoLens.encodeMessage _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'descriptors") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData Symbol where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_Symbol'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_Symbol'scheme x__)
+                (Control.DeepSeq.deepseq
+                   (_Symbol'package x__)
+                   (Control.DeepSeq.deepseq (_Symbol'descriptors x__) ())))
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.symbol' @:: Lens' SymbolInformation Data.Text.Text@
+         * 'Proto.Scip_Fields.documentation' @:: Lens' SymbolInformation [Data.Text.Text]@
+         * 'Proto.Scip_Fields.vec'documentation' @:: Lens' SymbolInformation (Data.Vector.Vector Data.Text.Text)@
+         * 'Proto.Scip_Fields.relationships' @:: Lens' SymbolInformation [Relationship]@
+         * 'Proto.Scip_Fields.vec'relationships' @:: Lens' SymbolInformation (Data.Vector.Vector Relationship)@
+         * 'Proto.Scip_Fields.kind' @:: Lens' SymbolInformation SymbolInformation'Kind@
+         * 'Proto.Scip_Fields.displayName' @:: Lens' SymbolInformation Data.Text.Text@
+         * 'Proto.Scip_Fields.signatureDocumentation' @:: Lens' SymbolInformation Signature@
+         * 'Proto.Scip_Fields.maybe'signatureDocumentation' @:: Lens' SymbolInformation (Prelude.Maybe Signature)@
+         * 'Proto.Scip_Fields.enclosingSymbol' @:: Lens' SymbolInformation Data.Text.Text@ -}
+data SymbolInformation
+  = SymbolInformation'_constructor {_SymbolInformation'symbol :: !Data.Text.Text,
+                                    _SymbolInformation'documentation :: !(Data.Vector.Vector Data.Text.Text),
+                                    _SymbolInformation'relationships :: !(Data.Vector.Vector Relationship),
+                                    _SymbolInformation'kind :: !SymbolInformation'Kind,
+                                    _SymbolInformation'displayName :: !Data.Text.Text,
+                                    _SymbolInformation'signatureDocumentation :: !(Prelude.Maybe Signature),
+                                    _SymbolInformation'enclosingSymbol :: !Data.Text.Text,
+                                    _SymbolInformation'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show SymbolInformation where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField SymbolInformation "symbol" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'symbol
+           (\ x__ y__ -> x__ {_SymbolInformation'symbol = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "documentation" [Data.Text.Text] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'documentation
+           (\ x__ y__ -> x__ {_SymbolInformation'documentation = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField SymbolInformation "vec'documentation" (Data.Vector.Vector Data.Text.Text) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'documentation
+           (\ x__ y__ -> x__ {_SymbolInformation'documentation = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "relationships" [Relationship] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'relationships
+           (\ x__ y__ -> x__ {_SymbolInformation'relationships = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField SymbolInformation "vec'relationships" (Data.Vector.Vector Relationship) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'relationships
+           (\ x__ y__ -> x__ {_SymbolInformation'relationships = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "kind" SymbolInformation'Kind where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'kind
+           (\ x__ y__ -> x__ {_SymbolInformation'kind = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "displayName" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'displayName
+           (\ x__ y__ -> x__ {_SymbolInformation'displayName = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "signatureDocumentation" Signature where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'signatureDocumentation
+           (\ x__ y__
+              -> x__ {_SymbolInformation'signatureDocumentation = y__}))
+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)
+instance Data.ProtoLens.Field.HasField SymbolInformation "maybe'signatureDocumentation" (Prelude.Maybe Signature) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'signatureDocumentation
+           (\ x__ y__
+              -> x__ {_SymbolInformation'signatureDocumentation = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField SymbolInformation "enclosingSymbol" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _SymbolInformation'enclosingSymbol
+           (\ x__ y__ -> x__ {_SymbolInformation'enclosingSymbol = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message SymbolInformation where
+  messageName _ = Data.Text.pack "scip.SymbolInformation"
+  packedMessageDescriptor _
+    = "\n\
+      \\DC1SymbolInformation\DC2\SYN\n\
+      \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2$\n\
+      \\rdocumentation\CAN\ETX \ETX(\tR\rdocumentation\DC28\n\
+      \\rrelationships\CAN\EOT \ETX(\v2\DC2.scip.RelationshipR\rrelationships\DC20\n\
+      \\EOTkind\CAN\ENQ \SOH(\SO2\FS.scip.SymbolInformation.KindR\EOTkind\DC2!\n\
+      \\fdisplay_name\CAN\ACK \SOH(\tR\vdisplayName\DC2H\n\
+      \\ETBsignature_documentation\CAN\a \SOH(\v2\SI.scip.SignatureR\SYNsignatureDocumentation\DC2)\n\
+      \\DLEenclosing_symbol\CAN\b \SOH(\tR\SIenclosingSymbol\"\251\t\n\
+      \\EOTKind\DC2\DC3\n\
+      \\SIUnspecifiedKind\DLE\NUL\DC2\DC2\n\
+      \\SOAbstractMethod\DLEB\DC2\f\n\
+      \\bAccessor\DLEH\DC2\t\n\
+      \\ENQArray\DLE\SOH\DC2\r\n\
+      \\tAssertion\DLE\STX\DC2\DC2\n\
+      \\SOAssociatedType\DLE\ETX\DC2\r\n\
+      \\tAttribute\DLE\EOT\DC2\t\n\
+      \\ENQAxiom\DLE\ENQ\DC2\v\n\
+      \\aBoolean\DLE\ACK\DC2\t\n\
+      \\ENQClass\DLE\a\DC2\v\n\
+      \\aConcept\DLEV\DC2\f\n\
+      \\bConstant\DLE\b\DC2\SI\n\
+      \\vConstructor\DLE\t\DC2\f\n\
+      \\bContract\DLE>\DC2\SO\n\
+      \\n\
+      \DataFamily\DLE\n\
+      \\DC2\f\n\
+      \\bDelegate\DLEI\DC2\b\n\
+      \\EOTEnum\DLE\v\DC2\SO\n\
+      \\n\
+      \EnumMember\DLE\f\DC2\t\n\
+      \\ENQError\DLE?\DC2\t\n\
+      \\ENQEvent\DLE\r\DC2\r\n\
+      \\tExtension\DLET\DC2\b\n\
+      \\EOTFact\DLE\SO\DC2\t\n\
+      \\ENQField\DLE\SI\DC2\b\n\
+      \\EOTFile\DLE\DLE\DC2\f\n\
+      \\bFunction\DLE\DC1\DC2\n\
+      \\n\
+      \\ACKGetter\DLE\DC2\DC2\v\n\
+      \\aGrammar\DLE\DC3\DC2\f\n\
+      \\bInstance\DLE\DC4\DC2\r\n\
+      \\tInterface\DLE\NAK\DC2\a\n\
+      \\ETXKey\DLE\SYN\DC2\b\n\
+      \\EOTLang\DLE\ETB\DC2\t\n\
+      \\ENQLemma\DLE\CAN\DC2\v\n\
+      \\aLibrary\DLE@\DC2\t\n\
+      \\ENQMacro\DLE\EM\DC2\n\
+      \\n\
+      \\ACKMethod\DLE\SUB\DC2\SI\n\
+      \\vMethodAlias\DLEJ\DC2\DC2\n\
+      \\SOMethodReceiver\DLE\ESC\DC2\ETB\n\
+      \\DC3MethodSpecification\DLEC\DC2\v\n\
+      \\aMessage\DLE\FS\DC2\t\n\
+      \\ENQMixin\DLEU\DC2\f\n\
+      \\bModifier\DLEA\DC2\n\
+      \\n\
+      \\ACKModule\DLE\GS\DC2\r\n\
+      \\tNamespace\DLE\RS\DC2\b\n\
+      \\EOTNull\DLE\US\DC2\n\
+      \\n\
+      \\ACKNumber\DLE \DC2\n\
+      \\n\
+      \\ACKObject\DLE!\DC2\f\n\
+      \\bOperator\DLE\"\DC2\v\n\
+      \\aPackage\DLE#\DC2\DC1\n\
+      \\rPackageObject\DLE$\DC2\r\n\
+      \\tParameter\DLE%\DC2\DC2\n\
+      \\SOParameterLabel\DLE&\DC2\v\n\
+      \\aPattern\DLE'\DC2\r\n\
+      \\tPredicate\DLE(\DC2\f\n\
+      \\bProperty\DLE)\DC2\f\n\
+      \\bProtocol\DLE*\DC2\DC2\n\
+      \\SOProtocolMethod\DLED\DC2\NAK\n\
+      \\DC1PureVirtualMethod\DLEE\DC2\SI\n\
+      \\vQuasiquoter\DLE+\DC2\DC1\n\
+      \\rSelfParameter\DLE,\DC2\n\
+      \\n\
+      \\ACKSetter\DLE-\DC2\r\n\
+      \\tSignature\DLE.\DC2\DC2\n\
+      \\SOSingletonClass\DLEK\DC2\DC3\n\
+      \\SISingletonMethod\DLEL\DC2\DC4\n\
+      \\DLEStaticDataMember\DLEM\DC2\SI\n\
+      \\vStaticEvent\DLEN\DC2\SI\n\
+      \\vStaticField\DLEO\DC2\DLE\n\
+      \\fStaticMethod\DLEP\DC2\DC2\n\
+      \\SOStaticProperty\DLEQ\DC2\DC2\n\
+      \\SOStaticVariable\DLER\DC2\n\
+      \\n\
+      \\ACKString\DLE0\DC2\n\
+      \\n\
+      \\ACKStruct\DLE1\DC2\r\n\
+      \\tSubscript\DLE/\DC2\n\
+      \\n\
+      \\ACKTactic\DLE2\DC2\v\n\
+      \\aTheorem\DLE3\DC2\DC1\n\
+      \\rThisParameter\DLE4\DC2\t\n\
+      \\ENQTrait\DLE5\DC2\SI\n\
+      \\vTraitMethod\DLEF\DC2\b\n\
+      \\EOTType\DLE6\DC2\r\n\
+      \\tTypeAlias\DLE7\DC2\r\n\
+      \\tTypeClass\DLE8\DC2\DC3\n\
+      \\SITypeClassMethod\DLEG\DC2\SO\n\
+      \\n\
+      \TypeFamily\DLE9\DC2\DC1\n\
+      \\rTypeParameter\DLE:\DC2\t\n\
+      \\ENQUnion\DLE;\DC2\t\n\
+      \\ENQValue\DLE<\DC2\f\n\
+      \\bVariable\DLE="
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        symbol__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "symbol"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"symbol")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        documentation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "documentation"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"documentation")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        relationships__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "relationships"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Relationship)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"relationships")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        kind__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "kind"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::
+                 Data.ProtoLens.FieldTypeDescriptor SymbolInformation'Kind)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"kind")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        displayName__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "display_name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"displayName")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        signatureDocumentation__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "signature_documentation"
+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::
+                 Data.ProtoLens.FieldTypeDescriptor Signature)
+              (Data.ProtoLens.OptionalField
+                 (Data.ProtoLens.Field.field @"maybe'signatureDocumentation")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+        enclosingSymbol__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "enclosing_symbol"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional
+                 (Data.ProtoLens.Field.field @"enclosingSymbol")) ::
+              Data.ProtoLens.FieldDescriptor SymbolInformation
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, symbol__field_descriptor),
+           (Data.ProtoLens.Tag 3, documentation__field_descriptor),
+           (Data.ProtoLens.Tag 4, relationships__field_descriptor),
+           (Data.ProtoLens.Tag 5, kind__field_descriptor),
+           (Data.ProtoLens.Tag 6, displayName__field_descriptor),
+           (Data.ProtoLens.Tag 7, signatureDocumentation__field_descriptor),
+           (Data.ProtoLens.Tag 8, enclosingSymbol__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _SymbolInformation'_unknownFields
+        (\ x__ y__ -> x__ {_SymbolInformation'_unknownFields = y__})
+  defMessage
+    = SymbolInformation'_constructor
+        {_SymbolInformation'symbol = Data.ProtoLens.fieldDefault,
+         _SymbolInformation'documentation = Data.Vector.Generic.empty,
+         _SymbolInformation'relationships = Data.Vector.Generic.empty,
+         _SymbolInformation'kind = Data.ProtoLens.fieldDefault,
+         _SymbolInformation'displayName = Data.ProtoLens.fieldDefault,
+         _SymbolInformation'signatureDocumentation = Prelude.Nothing,
+         _SymbolInformation'enclosingSymbol = Data.ProtoLens.fieldDefault,
+         _SymbolInformation'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          SymbolInformation
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Relationship
+                -> Data.ProtoLens.Encoding.Bytes.Parser SymbolInformation
+        loop x mutable'documentation mutable'relationships
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'documentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                   mutable'documentation)
+                      frozen'relationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                                (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                                   mutable'relationships)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'documentation")
+                              frozen'documentation
+                              (Lens.Family2.set
+                                 (Data.ProtoLens.Field.field @"vec'relationships")
+                                 frozen'relationships x)))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "symbol"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"symbol") y x)
+                                  mutable'documentation mutable'relationships
+                        26
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.getText
+                                              (Prelude.fromIntegral len))
+                                        "documentation"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'documentation y)
+                                loop x v mutable'relationships
+                        34
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.isolate
+                                              (Prelude.fromIntegral len)
+                                              Data.ProtoLens.parseMessage)
+                                        "relationships"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append
+                                          mutable'relationships y)
+                                loop x mutable'documentation v
+                        40
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (Prelude.fmap
+                                          Prelude.toEnum
+                                          (Prelude.fmap
+                                             Prelude.fromIntegral
+                                             Data.ProtoLens.Encoding.Bytes.getVarInt))
+                                       "kind"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"kind") y x)
+                                  mutable'documentation mutable'relationships
+                        50
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "display_name"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"displayName") y x)
+                                  mutable'documentation mutable'relationships
+                        58
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.isolate
+                                             (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)
+                                       "signature_documentation"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"signatureDocumentation") y x)
+                                  mutable'documentation mutable'relationships
+                        66
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "enclosing_symbol"
+                                loop
+                                  (Lens.Family2.set
+                                     (Data.ProtoLens.Field.field @"enclosingSymbol") y x)
+                                  mutable'documentation mutable'relationships
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'documentation mutable'relationships
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'documentation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         Data.ProtoLens.Encoding.Growing.new
+              mutable'relationships <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                         Data.ProtoLens.Encoding.Growing.new
+              loop
+                Data.ProtoLens.defMessage mutable'documentation
+                mutable'relationships)
+          "SymbolInformation"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let
+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"symbol") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                   (\ _v
+                      -> (Data.Monoid.<>)
+                           (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                           ((Prelude..)
+                              (\ bs
+                                 -> (Data.Monoid.<>)
+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                         (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                      (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                              Data.Text.Encoding.encodeUtf8 _v))
+                   (Lens.Family2.view
+                      (Data.ProtoLens.Field.field @"vec'documentation") _x))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 34)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.ProtoLens.encodeMessage _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'relationships") _x))
+                   ((Data.Monoid.<>)
+                      (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"kind") _x
+                       in
+                         if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                             Data.Monoid.mempty
+                         else
+                             (Data.Monoid.<>)
+                               (Data.ProtoLens.Encoding.Bytes.putVarInt 40)
+                               ((Prelude..)
+                                  ((Prelude..)
+                                     Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)
+                                  Prelude.fromEnum _v))
+                      ((Data.Monoid.<>)
+                         (let
+                            _v
+                              = Lens.Family2.view (Data.ProtoLens.Field.field @"displayName") _x
+                          in
+                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                Data.Monoid.mempty
+                            else
+                                (Data.Monoid.<>)
+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 50)
+                                  ((Prelude..)
+                                     (\ bs
+                                        -> (Data.Monoid.<>)
+                                             (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                             (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                     Data.Text.Encoding.encodeUtf8 _v))
+                         ((Data.Monoid.<>)
+                            (case
+                                 Lens.Family2.view
+                                   (Data.ProtoLens.Field.field @"maybe'signatureDocumentation") _x
+                             of
+                               Prelude.Nothing -> Data.Monoid.mempty
+                               (Prelude.Just _v)
+                                 -> (Data.Monoid.<>)
+                                      (Data.ProtoLens.Encoding.Bytes.putVarInt 58)
+                                      ((Prelude..)
+                                         (\ bs
+                                            -> (Data.Monoid.<>)
+                                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                    (Prelude.fromIntegral
+                                                       (Data.ByteString.length bs)))
+                                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                         Data.ProtoLens.encodeMessage _v))
+                            ((Data.Monoid.<>)
+                               (let
+                                  _v
+                                    = Lens.Family2.view
+                                        (Data.ProtoLens.Field.field @"enclosingSymbol") _x
+                                in
+                                  if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                                      Data.Monoid.mempty
+                                  else
+                                      (Data.Monoid.<>)
+                                        (Data.ProtoLens.Encoding.Bytes.putVarInt 66)
+                                        ((Prelude..)
+                                           (\ bs
+                                              -> (Data.Monoid.<>)
+                                                   (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                                      (Prelude.fromIntegral
+                                                         (Data.ByteString.length bs)))
+                                                   (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                           Data.Text.Encoding.encodeUtf8 _v))
+                               (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                                  (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))
+instance Control.DeepSeq.NFData SymbolInformation where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_SymbolInformation'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_SymbolInformation'symbol x__)
+                (Control.DeepSeq.deepseq
+                   (_SymbolInformation'documentation x__)
+                   (Control.DeepSeq.deepseq
+                      (_SymbolInformation'relationships x__)
+                      (Control.DeepSeq.deepseq
+                         (_SymbolInformation'kind x__)
+                         (Control.DeepSeq.deepseq
+                            (_SymbolInformation'displayName x__)
+                            (Control.DeepSeq.deepseq
+                               (_SymbolInformation'signatureDocumentation x__)
+                               (Control.DeepSeq.deepseq
+                                  (_SymbolInformation'enclosingSymbol x__) ())))))))
+newtype SymbolInformation'Kind'UnrecognizedValue
+  = SymbolInformation'Kind'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data SymbolInformation'Kind
+  = SymbolInformation'UnspecifiedKind |
+    SymbolInformation'Array |
+    SymbolInformation'Assertion |
+    SymbolInformation'AssociatedType |
+    SymbolInformation'Attribute |
+    SymbolInformation'Axiom |
+    SymbolInformation'Boolean |
+    SymbolInformation'Class |
+    SymbolInformation'Constant |
+    SymbolInformation'Constructor |
+    SymbolInformation'DataFamily |
+    SymbolInformation'Enum |
+    SymbolInformation'EnumMember |
+    SymbolInformation'Event |
+    SymbolInformation'Fact |
+    SymbolInformation'Field |
+    SymbolInformation'File |
+    SymbolInformation'Function |
+    SymbolInformation'Getter |
+    SymbolInformation'Grammar |
+    SymbolInformation'Instance |
+    SymbolInformation'Interface |
+    SymbolInformation'Key |
+    SymbolInformation'Lang |
+    SymbolInformation'Lemma |
+    SymbolInformation'Macro |
+    SymbolInformation'Method |
+    SymbolInformation'MethodReceiver |
+    SymbolInformation'Message |
+    SymbolInformation'Module |
+    SymbolInformation'Namespace |
+    SymbolInformation'Null |
+    SymbolInformation'Number |
+    SymbolInformation'Object |
+    SymbolInformation'Operator |
+    SymbolInformation'Package |
+    SymbolInformation'PackageObject |
+    SymbolInformation'Parameter |
+    SymbolInformation'ParameterLabel |
+    SymbolInformation'Pattern |
+    SymbolInformation'Predicate |
+    SymbolInformation'Property |
+    SymbolInformation'Protocol |
+    SymbolInformation'Quasiquoter |
+    SymbolInformation'SelfParameter |
+    SymbolInformation'Setter |
+    SymbolInformation'Signature |
+    SymbolInformation'Subscript |
+    SymbolInformation'String |
+    SymbolInformation'Struct |
+    SymbolInformation'Tactic |
+    SymbolInformation'Theorem |
+    SymbolInformation'ThisParameter |
+    SymbolInformation'Trait |
+    SymbolInformation'Type |
+    SymbolInformation'TypeAlias |
+    SymbolInformation'TypeClass |
+    SymbolInformation'TypeFamily |
+    SymbolInformation'TypeParameter |
+    SymbolInformation'Union |
+    SymbolInformation'Value |
+    SymbolInformation'Variable |
+    SymbolInformation'Contract |
+    SymbolInformation'Error |
+    SymbolInformation'Library |
+    SymbolInformation'Modifier |
+    SymbolInformation'AbstractMethod |
+    SymbolInformation'MethodSpecification |
+    SymbolInformation'ProtocolMethod |
+    SymbolInformation'PureVirtualMethod |
+    SymbolInformation'TraitMethod |
+    SymbolInformation'TypeClassMethod |
+    SymbolInformation'Accessor |
+    SymbolInformation'Delegate |
+    SymbolInformation'MethodAlias |
+    SymbolInformation'SingletonClass |
+    SymbolInformation'SingletonMethod |
+    SymbolInformation'StaticDataMember |
+    SymbolInformation'StaticEvent |
+    SymbolInformation'StaticField |
+    SymbolInformation'StaticMethod |
+    SymbolInformation'StaticProperty |
+    SymbolInformation'StaticVariable |
+    SymbolInformation'Extension |
+    SymbolInformation'Mixin |
+    SymbolInformation'Concept |
+    SymbolInformation'Kind'Unrecognized !SymbolInformation'Kind'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum SymbolInformation'Kind where
+  maybeToEnum 0 = Prelude.Just SymbolInformation'UnspecifiedKind
+  maybeToEnum 1 = Prelude.Just SymbolInformation'Array
+  maybeToEnum 2 = Prelude.Just SymbolInformation'Assertion
+  maybeToEnum 3 = Prelude.Just SymbolInformation'AssociatedType
+  maybeToEnum 4 = Prelude.Just SymbolInformation'Attribute
+  maybeToEnum 5 = Prelude.Just SymbolInformation'Axiom
+  maybeToEnum 6 = Prelude.Just SymbolInformation'Boolean
+  maybeToEnum 7 = Prelude.Just SymbolInformation'Class
+  maybeToEnum 8 = Prelude.Just SymbolInformation'Constant
+  maybeToEnum 9 = Prelude.Just SymbolInformation'Constructor
+  maybeToEnum 10 = Prelude.Just SymbolInformation'DataFamily
+  maybeToEnum 11 = Prelude.Just SymbolInformation'Enum
+  maybeToEnum 12 = Prelude.Just SymbolInformation'EnumMember
+  maybeToEnum 13 = Prelude.Just SymbolInformation'Event
+  maybeToEnum 14 = Prelude.Just SymbolInformation'Fact
+  maybeToEnum 15 = Prelude.Just SymbolInformation'Field
+  maybeToEnum 16 = Prelude.Just SymbolInformation'File
+  maybeToEnum 17 = Prelude.Just SymbolInformation'Function
+  maybeToEnum 18 = Prelude.Just SymbolInformation'Getter
+  maybeToEnum 19 = Prelude.Just SymbolInformation'Grammar
+  maybeToEnum 20 = Prelude.Just SymbolInformation'Instance
+  maybeToEnum 21 = Prelude.Just SymbolInformation'Interface
+  maybeToEnum 22 = Prelude.Just SymbolInformation'Key
+  maybeToEnum 23 = Prelude.Just SymbolInformation'Lang
+  maybeToEnum 24 = Prelude.Just SymbolInformation'Lemma
+  maybeToEnum 25 = Prelude.Just SymbolInformation'Macro
+  maybeToEnum 26 = Prelude.Just SymbolInformation'Method
+  maybeToEnum 27 = Prelude.Just SymbolInformation'MethodReceiver
+  maybeToEnum 28 = Prelude.Just SymbolInformation'Message
+  maybeToEnum 29 = Prelude.Just SymbolInformation'Module
+  maybeToEnum 30 = Prelude.Just SymbolInformation'Namespace
+  maybeToEnum 31 = Prelude.Just SymbolInformation'Null
+  maybeToEnum 32 = Prelude.Just SymbolInformation'Number
+  maybeToEnum 33 = Prelude.Just SymbolInformation'Object
+  maybeToEnum 34 = Prelude.Just SymbolInformation'Operator
+  maybeToEnum 35 = Prelude.Just SymbolInformation'Package
+  maybeToEnum 36 = Prelude.Just SymbolInformation'PackageObject
+  maybeToEnum 37 = Prelude.Just SymbolInformation'Parameter
+  maybeToEnum 38 = Prelude.Just SymbolInformation'ParameterLabel
+  maybeToEnum 39 = Prelude.Just SymbolInformation'Pattern
+  maybeToEnum 40 = Prelude.Just SymbolInformation'Predicate
+  maybeToEnum 41 = Prelude.Just SymbolInformation'Property
+  maybeToEnum 42 = Prelude.Just SymbolInformation'Protocol
+  maybeToEnum 43 = Prelude.Just SymbolInformation'Quasiquoter
+  maybeToEnum 44 = Prelude.Just SymbolInformation'SelfParameter
+  maybeToEnum 45 = Prelude.Just SymbolInformation'Setter
+  maybeToEnum 46 = Prelude.Just SymbolInformation'Signature
+  maybeToEnum 47 = Prelude.Just SymbolInformation'Subscript
+  maybeToEnum 48 = Prelude.Just SymbolInformation'String
+  maybeToEnum 49 = Prelude.Just SymbolInformation'Struct
+  maybeToEnum 50 = Prelude.Just SymbolInformation'Tactic
+  maybeToEnum 51 = Prelude.Just SymbolInformation'Theorem
+  maybeToEnum 52 = Prelude.Just SymbolInformation'ThisParameter
+  maybeToEnum 53 = Prelude.Just SymbolInformation'Trait
+  maybeToEnum 54 = Prelude.Just SymbolInformation'Type
+  maybeToEnum 55 = Prelude.Just SymbolInformation'TypeAlias
+  maybeToEnum 56 = Prelude.Just SymbolInformation'TypeClass
+  maybeToEnum 57 = Prelude.Just SymbolInformation'TypeFamily
+  maybeToEnum 58 = Prelude.Just SymbolInformation'TypeParameter
+  maybeToEnum 59 = Prelude.Just SymbolInformation'Union
+  maybeToEnum 60 = Prelude.Just SymbolInformation'Value
+  maybeToEnum 61 = Prelude.Just SymbolInformation'Variable
+  maybeToEnum 62 = Prelude.Just SymbolInformation'Contract
+  maybeToEnum 63 = Prelude.Just SymbolInformation'Error
+  maybeToEnum 64 = Prelude.Just SymbolInformation'Library
+  maybeToEnum 65 = Prelude.Just SymbolInformation'Modifier
+  maybeToEnum 66 = Prelude.Just SymbolInformation'AbstractMethod
+  maybeToEnum 67 = Prelude.Just SymbolInformation'MethodSpecification
+  maybeToEnum 68 = Prelude.Just SymbolInformation'ProtocolMethod
+  maybeToEnum 69 = Prelude.Just SymbolInformation'PureVirtualMethod
+  maybeToEnum 70 = Prelude.Just SymbolInformation'TraitMethod
+  maybeToEnum 71 = Prelude.Just SymbolInformation'TypeClassMethod
+  maybeToEnum 72 = Prelude.Just SymbolInformation'Accessor
+  maybeToEnum 73 = Prelude.Just SymbolInformation'Delegate
+  maybeToEnum 74 = Prelude.Just SymbolInformation'MethodAlias
+  maybeToEnum 75 = Prelude.Just SymbolInformation'SingletonClass
+  maybeToEnum 76 = Prelude.Just SymbolInformation'SingletonMethod
+  maybeToEnum 77 = Prelude.Just SymbolInformation'StaticDataMember
+  maybeToEnum 78 = Prelude.Just SymbolInformation'StaticEvent
+  maybeToEnum 79 = Prelude.Just SymbolInformation'StaticField
+  maybeToEnum 80 = Prelude.Just SymbolInformation'StaticMethod
+  maybeToEnum 81 = Prelude.Just SymbolInformation'StaticProperty
+  maybeToEnum 82 = Prelude.Just SymbolInformation'StaticVariable
+  maybeToEnum 84 = Prelude.Just SymbolInformation'Extension
+  maybeToEnum 85 = Prelude.Just SymbolInformation'Mixin
+  maybeToEnum 86 = Prelude.Just SymbolInformation'Concept
+  maybeToEnum k
+    = Prelude.Just
+        (SymbolInformation'Kind'Unrecognized
+           (SymbolInformation'Kind'UnrecognizedValue
+              (Prelude.fromIntegral k)))
+  showEnum SymbolInformation'UnspecifiedKind = "UnspecifiedKind"
+  showEnum SymbolInformation'AbstractMethod = "AbstractMethod"
+  showEnum SymbolInformation'Accessor = "Accessor"
+  showEnum SymbolInformation'Array = "Array"
+  showEnum SymbolInformation'Assertion = "Assertion"
+  showEnum SymbolInformation'AssociatedType = "AssociatedType"
+  showEnum SymbolInformation'Attribute = "Attribute"
+  showEnum SymbolInformation'Axiom = "Axiom"
+  showEnum SymbolInformation'Boolean = "Boolean"
+  showEnum SymbolInformation'Class = "Class"
+  showEnum SymbolInformation'Concept = "Concept"
+  showEnum SymbolInformation'Constant = "Constant"
+  showEnum SymbolInformation'Constructor = "Constructor"
+  showEnum SymbolInformation'Contract = "Contract"
+  showEnum SymbolInformation'DataFamily = "DataFamily"
+  showEnum SymbolInformation'Delegate = "Delegate"
+  showEnum SymbolInformation'Enum = "Enum"
+  showEnum SymbolInformation'EnumMember = "EnumMember"
+  showEnum SymbolInformation'Error = "Error"
+  showEnum SymbolInformation'Event = "Event"
+  showEnum SymbolInformation'Extension = "Extension"
+  showEnum SymbolInformation'Fact = "Fact"
+  showEnum SymbolInformation'Field = "Field"
+  showEnum SymbolInformation'File = "File"
+  showEnum SymbolInformation'Function = "Function"
+  showEnum SymbolInformation'Getter = "Getter"
+  showEnum SymbolInformation'Grammar = "Grammar"
+  showEnum SymbolInformation'Instance = "Instance"
+  showEnum SymbolInformation'Interface = "Interface"
+  showEnum SymbolInformation'Key = "Key"
+  showEnum SymbolInformation'Lang = "Lang"
+  showEnum SymbolInformation'Lemma = "Lemma"
+  showEnum SymbolInformation'Library = "Library"
+  showEnum SymbolInformation'Macro = "Macro"
+  showEnum SymbolInformation'Method = "Method"
+  showEnum SymbolInformation'MethodAlias = "MethodAlias"
+  showEnum SymbolInformation'MethodReceiver = "MethodReceiver"
+  showEnum SymbolInformation'MethodSpecification
+    = "MethodSpecification"
+  showEnum SymbolInformation'Message = "Message"
+  showEnum SymbolInformation'Mixin = "Mixin"
+  showEnum SymbolInformation'Modifier = "Modifier"
+  showEnum SymbolInformation'Module = "Module"
+  showEnum SymbolInformation'Namespace = "Namespace"
+  showEnum SymbolInformation'Null = "Null"
+  showEnum SymbolInformation'Number = "Number"
+  showEnum SymbolInformation'Object = "Object"
+  showEnum SymbolInformation'Operator = "Operator"
+  showEnum SymbolInformation'Package = "Package"
+  showEnum SymbolInformation'PackageObject = "PackageObject"
+  showEnum SymbolInformation'Parameter = "Parameter"
+  showEnum SymbolInformation'ParameterLabel = "ParameterLabel"
+  showEnum SymbolInformation'Pattern = "Pattern"
+  showEnum SymbolInformation'Predicate = "Predicate"
+  showEnum SymbolInformation'Property = "Property"
+  showEnum SymbolInformation'Protocol = "Protocol"
+  showEnum SymbolInformation'ProtocolMethod = "ProtocolMethod"
+  showEnum SymbolInformation'PureVirtualMethod = "PureVirtualMethod"
+  showEnum SymbolInformation'Quasiquoter = "Quasiquoter"
+  showEnum SymbolInformation'SelfParameter = "SelfParameter"
+  showEnum SymbolInformation'Setter = "Setter"
+  showEnum SymbolInformation'Signature = "Signature"
+  showEnum SymbolInformation'SingletonClass = "SingletonClass"
+  showEnum SymbolInformation'SingletonMethod = "SingletonMethod"
+  showEnum SymbolInformation'StaticDataMember = "StaticDataMember"
+  showEnum SymbolInformation'StaticEvent = "StaticEvent"
+  showEnum SymbolInformation'StaticField = "StaticField"
+  showEnum SymbolInformation'StaticMethod = "StaticMethod"
+  showEnum SymbolInformation'StaticProperty = "StaticProperty"
+  showEnum SymbolInformation'StaticVariable = "StaticVariable"
+  showEnum SymbolInformation'String = "String"
+  showEnum SymbolInformation'Struct = "Struct"
+  showEnum SymbolInformation'Subscript = "Subscript"
+  showEnum SymbolInformation'Tactic = "Tactic"
+  showEnum SymbolInformation'Theorem = "Theorem"
+  showEnum SymbolInformation'ThisParameter = "ThisParameter"
+  showEnum SymbolInformation'Trait = "Trait"
+  showEnum SymbolInformation'TraitMethod = "TraitMethod"
+  showEnum SymbolInformation'Type = "Type"
+  showEnum SymbolInformation'TypeAlias = "TypeAlias"
+  showEnum SymbolInformation'TypeClass = "TypeClass"
+  showEnum SymbolInformation'TypeClassMethod = "TypeClassMethod"
+  showEnum SymbolInformation'TypeFamily = "TypeFamily"
+  showEnum SymbolInformation'TypeParameter = "TypeParameter"
+  showEnum SymbolInformation'Union = "Union"
+  showEnum SymbolInformation'Value = "Value"
+  showEnum SymbolInformation'Variable = "Variable"
+  showEnum
+    (SymbolInformation'Kind'Unrecognized (SymbolInformation'Kind'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedKind"
+    = Prelude.Just SymbolInformation'UnspecifiedKind
+    | (Prelude.==) k "AbstractMethod"
+    = Prelude.Just SymbolInformation'AbstractMethod
+    | (Prelude.==) k "Accessor"
+    = Prelude.Just SymbolInformation'Accessor
+    | (Prelude.==) k "Array" = Prelude.Just SymbolInformation'Array
+    | (Prelude.==) k "Assertion"
+    = Prelude.Just SymbolInformation'Assertion
+    | (Prelude.==) k "AssociatedType"
+    = Prelude.Just SymbolInformation'AssociatedType
+    | (Prelude.==) k "Attribute"
+    = Prelude.Just SymbolInformation'Attribute
+    | (Prelude.==) k "Axiom" = Prelude.Just SymbolInformation'Axiom
+    | (Prelude.==) k "Boolean" = Prelude.Just SymbolInformation'Boolean
+    | (Prelude.==) k "Class" = Prelude.Just SymbolInformation'Class
+    | (Prelude.==) k "Concept" = Prelude.Just SymbolInformation'Concept
+    | (Prelude.==) k "Constant"
+    = Prelude.Just SymbolInformation'Constant
+    | (Prelude.==) k "Constructor"
+    = Prelude.Just SymbolInformation'Constructor
+    | (Prelude.==) k "Contract"
+    = Prelude.Just SymbolInformation'Contract
+    | (Prelude.==) k "DataFamily"
+    = Prelude.Just SymbolInformation'DataFamily
+    | (Prelude.==) k "Delegate"
+    = Prelude.Just SymbolInformation'Delegate
+    | (Prelude.==) k "Enum" = Prelude.Just SymbolInformation'Enum
+    | (Prelude.==) k "EnumMember"
+    = Prelude.Just SymbolInformation'EnumMember
+    | (Prelude.==) k "Error" = Prelude.Just SymbolInformation'Error
+    | (Prelude.==) k "Event" = Prelude.Just SymbolInformation'Event
+    | (Prelude.==) k "Extension"
+    = Prelude.Just SymbolInformation'Extension
+    | (Prelude.==) k "Fact" = Prelude.Just SymbolInformation'Fact
+    | (Prelude.==) k "Field" = Prelude.Just SymbolInformation'Field
+    | (Prelude.==) k "File" = Prelude.Just SymbolInformation'File
+    | (Prelude.==) k "Function"
+    = Prelude.Just SymbolInformation'Function
+    | (Prelude.==) k "Getter" = Prelude.Just SymbolInformation'Getter
+    | (Prelude.==) k "Grammar" = Prelude.Just SymbolInformation'Grammar
+    | (Prelude.==) k "Instance"
+    = Prelude.Just SymbolInformation'Instance
+    | (Prelude.==) k "Interface"
+    = Prelude.Just SymbolInformation'Interface
+    | (Prelude.==) k "Key" = Prelude.Just SymbolInformation'Key
+    | (Prelude.==) k "Lang" = Prelude.Just SymbolInformation'Lang
+    | (Prelude.==) k "Lemma" = Prelude.Just SymbolInformation'Lemma
+    | (Prelude.==) k "Library" = Prelude.Just SymbolInformation'Library
+    | (Prelude.==) k "Macro" = Prelude.Just SymbolInformation'Macro
+    | (Prelude.==) k "Method" = Prelude.Just SymbolInformation'Method
+    | (Prelude.==) k "MethodAlias"
+    = Prelude.Just SymbolInformation'MethodAlias
+    | (Prelude.==) k "MethodReceiver"
+    = Prelude.Just SymbolInformation'MethodReceiver
+    | (Prelude.==) k "MethodSpecification"
+    = Prelude.Just SymbolInformation'MethodSpecification
+    | (Prelude.==) k "Message" = Prelude.Just SymbolInformation'Message
+    | (Prelude.==) k "Mixin" = Prelude.Just SymbolInformation'Mixin
+    | (Prelude.==) k "Modifier"
+    = Prelude.Just SymbolInformation'Modifier
+    | (Prelude.==) k "Module" = Prelude.Just SymbolInformation'Module
+    | (Prelude.==) k "Namespace"
+    = Prelude.Just SymbolInformation'Namespace
+    | (Prelude.==) k "Null" = Prelude.Just SymbolInformation'Null
+    | (Prelude.==) k "Number" = Prelude.Just SymbolInformation'Number
+    | (Prelude.==) k "Object" = Prelude.Just SymbolInformation'Object
+    | (Prelude.==) k "Operator"
+    = Prelude.Just SymbolInformation'Operator
+    | (Prelude.==) k "Package" = Prelude.Just SymbolInformation'Package
+    | (Prelude.==) k "PackageObject"
+    = Prelude.Just SymbolInformation'PackageObject
+    | (Prelude.==) k "Parameter"
+    = Prelude.Just SymbolInformation'Parameter
+    | (Prelude.==) k "ParameterLabel"
+    = Prelude.Just SymbolInformation'ParameterLabel
+    | (Prelude.==) k "Pattern" = Prelude.Just SymbolInformation'Pattern
+    | (Prelude.==) k "Predicate"
+    = Prelude.Just SymbolInformation'Predicate
+    | (Prelude.==) k "Property"
+    = Prelude.Just SymbolInformation'Property
+    | (Prelude.==) k "Protocol"
+    = Prelude.Just SymbolInformation'Protocol
+    | (Prelude.==) k "ProtocolMethod"
+    = Prelude.Just SymbolInformation'ProtocolMethod
+    | (Prelude.==) k "PureVirtualMethod"
+    = Prelude.Just SymbolInformation'PureVirtualMethod
+    | (Prelude.==) k "Quasiquoter"
+    = Prelude.Just SymbolInformation'Quasiquoter
+    | (Prelude.==) k "SelfParameter"
+    = Prelude.Just SymbolInformation'SelfParameter
+    | (Prelude.==) k "Setter" = Prelude.Just SymbolInformation'Setter
+    | (Prelude.==) k "Signature"
+    = Prelude.Just SymbolInformation'Signature
+    | (Prelude.==) k "SingletonClass"
+    = Prelude.Just SymbolInformation'SingletonClass
+    | (Prelude.==) k "SingletonMethod"
+    = Prelude.Just SymbolInformation'SingletonMethod
+    | (Prelude.==) k "StaticDataMember"
+    = Prelude.Just SymbolInformation'StaticDataMember
+    | (Prelude.==) k "StaticEvent"
+    = Prelude.Just SymbolInformation'StaticEvent
+    | (Prelude.==) k "StaticField"
+    = Prelude.Just SymbolInformation'StaticField
+    | (Prelude.==) k "StaticMethod"
+    = Prelude.Just SymbolInformation'StaticMethod
+    | (Prelude.==) k "StaticProperty"
+    = Prelude.Just SymbolInformation'StaticProperty
+    | (Prelude.==) k "StaticVariable"
+    = Prelude.Just SymbolInformation'StaticVariable
+    | (Prelude.==) k "String" = Prelude.Just SymbolInformation'String
+    | (Prelude.==) k "Struct" = Prelude.Just SymbolInformation'Struct
+    | (Prelude.==) k "Subscript"
+    = Prelude.Just SymbolInformation'Subscript
+    | (Prelude.==) k "Tactic" = Prelude.Just SymbolInformation'Tactic
+    | (Prelude.==) k "Theorem" = Prelude.Just SymbolInformation'Theorem
+    | (Prelude.==) k "ThisParameter"
+    = Prelude.Just SymbolInformation'ThisParameter
+    | (Prelude.==) k "Trait" = Prelude.Just SymbolInformation'Trait
+    | (Prelude.==) k "TraitMethod"
+    = Prelude.Just SymbolInformation'TraitMethod
+    | (Prelude.==) k "Type" = Prelude.Just SymbolInformation'Type
+    | (Prelude.==) k "TypeAlias"
+    = Prelude.Just SymbolInformation'TypeAlias
+    | (Prelude.==) k "TypeClass"
+    = Prelude.Just SymbolInformation'TypeClass
+    | (Prelude.==) k "TypeClassMethod"
+    = Prelude.Just SymbolInformation'TypeClassMethod
+    | (Prelude.==) k "TypeFamily"
+    = Prelude.Just SymbolInformation'TypeFamily
+    | (Prelude.==) k "TypeParameter"
+    = Prelude.Just SymbolInformation'TypeParameter
+    | (Prelude.==) k "Union" = Prelude.Just SymbolInformation'Union
+    | (Prelude.==) k "Value" = Prelude.Just SymbolInformation'Value
+    | (Prelude.==) k "Variable"
+    = Prelude.Just SymbolInformation'Variable
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded SymbolInformation'Kind where
+  minBound = SymbolInformation'UnspecifiedKind
+  maxBound = SymbolInformation'Concept
+instance Prelude.Enum SymbolInformation'Kind where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum Kind: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum SymbolInformation'UnspecifiedKind = 0
+  fromEnum SymbolInformation'Array = 1
+  fromEnum SymbolInformation'Assertion = 2
+  fromEnum SymbolInformation'AssociatedType = 3
+  fromEnum SymbolInformation'Attribute = 4
+  fromEnum SymbolInformation'Axiom = 5
+  fromEnum SymbolInformation'Boolean = 6
+  fromEnum SymbolInformation'Class = 7
+  fromEnum SymbolInformation'Constant = 8
+  fromEnum SymbolInformation'Constructor = 9
+  fromEnum SymbolInformation'DataFamily = 10
+  fromEnum SymbolInformation'Enum = 11
+  fromEnum SymbolInformation'EnumMember = 12
+  fromEnum SymbolInformation'Event = 13
+  fromEnum SymbolInformation'Fact = 14
+  fromEnum SymbolInformation'Field = 15
+  fromEnum SymbolInformation'File = 16
+  fromEnum SymbolInformation'Function = 17
+  fromEnum SymbolInformation'Getter = 18
+  fromEnum SymbolInformation'Grammar = 19
+  fromEnum SymbolInformation'Instance = 20
+  fromEnum SymbolInformation'Interface = 21
+  fromEnum SymbolInformation'Key = 22
+  fromEnum SymbolInformation'Lang = 23
+  fromEnum SymbolInformation'Lemma = 24
+  fromEnum SymbolInformation'Macro = 25
+  fromEnum SymbolInformation'Method = 26
+  fromEnum SymbolInformation'MethodReceiver = 27
+  fromEnum SymbolInformation'Message = 28
+  fromEnum SymbolInformation'Module = 29
+  fromEnum SymbolInformation'Namespace = 30
+  fromEnum SymbolInformation'Null = 31
+  fromEnum SymbolInformation'Number = 32
+  fromEnum SymbolInformation'Object = 33
+  fromEnum SymbolInformation'Operator = 34
+  fromEnum SymbolInformation'Package = 35
+  fromEnum SymbolInformation'PackageObject = 36
+  fromEnum SymbolInformation'Parameter = 37
+  fromEnum SymbolInformation'ParameterLabel = 38
+  fromEnum SymbolInformation'Pattern = 39
+  fromEnum SymbolInformation'Predicate = 40
+  fromEnum SymbolInformation'Property = 41
+  fromEnum SymbolInformation'Protocol = 42
+  fromEnum SymbolInformation'Quasiquoter = 43
+  fromEnum SymbolInformation'SelfParameter = 44
+  fromEnum SymbolInformation'Setter = 45
+  fromEnum SymbolInformation'Signature = 46
+  fromEnum SymbolInformation'Subscript = 47
+  fromEnum SymbolInformation'String = 48
+  fromEnum SymbolInformation'Struct = 49
+  fromEnum SymbolInformation'Tactic = 50
+  fromEnum SymbolInformation'Theorem = 51
+  fromEnum SymbolInformation'ThisParameter = 52
+  fromEnum SymbolInformation'Trait = 53
+  fromEnum SymbolInformation'Type = 54
+  fromEnum SymbolInformation'TypeAlias = 55
+  fromEnum SymbolInformation'TypeClass = 56
+  fromEnum SymbolInformation'TypeFamily = 57
+  fromEnum SymbolInformation'TypeParameter = 58
+  fromEnum SymbolInformation'Union = 59
+  fromEnum SymbolInformation'Value = 60
+  fromEnum SymbolInformation'Variable = 61
+  fromEnum SymbolInformation'Contract = 62
+  fromEnum SymbolInformation'Error = 63
+  fromEnum SymbolInformation'Library = 64
+  fromEnum SymbolInformation'Modifier = 65
+  fromEnum SymbolInformation'AbstractMethod = 66
+  fromEnum SymbolInformation'MethodSpecification = 67
+  fromEnum SymbolInformation'ProtocolMethod = 68
+  fromEnum SymbolInformation'PureVirtualMethod = 69
+  fromEnum SymbolInformation'TraitMethod = 70
+  fromEnum SymbolInformation'TypeClassMethod = 71
+  fromEnum SymbolInformation'Accessor = 72
+  fromEnum SymbolInformation'Delegate = 73
+  fromEnum SymbolInformation'MethodAlias = 74
+  fromEnum SymbolInformation'SingletonClass = 75
+  fromEnum SymbolInformation'SingletonMethod = 76
+  fromEnum SymbolInformation'StaticDataMember = 77
+  fromEnum SymbolInformation'StaticEvent = 78
+  fromEnum SymbolInformation'StaticField = 79
+  fromEnum SymbolInformation'StaticMethod = 80
+  fromEnum SymbolInformation'StaticProperty = 81
+  fromEnum SymbolInformation'StaticVariable = 82
+  fromEnum SymbolInformation'Extension = 84
+  fromEnum SymbolInformation'Mixin = 85
+  fromEnum SymbolInformation'Concept = 86
+  fromEnum
+    (SymbolInformation'Kind'Unrecognized (SymbolInformation'Kind'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ SymbolInformation'Concept
+    = Prelude.error
+        "SymbolInformation'Kind.succ: bad argument SymbolInformation'Concept. This value would be out of bounds."
+  succ SymbolInformation'UnspecifiedKind = SymbolInformation'Array
+  succ SymbolInformation'Array = SymbolInformation'Assertion
+  succ SymbolInformation'Assertion = SymbolInformation'AssociatedType
+  succ SymbolInformation'AssociatedType = SymbolInformation'Attribute
+  succ SymbolInformation'Attribute = SymbolInformation'Axiom
+  succ SymbolInformation'Axiom = SymbolInformation'Boolean
+  succ SymbolInformation'Boolean = SymbolInformation'Class
+  succ SymbolInformation'Class = SymbolInformation'Constant
+  succ SymbolInformation'Constant = SymbolInformation'Constructor
+  succ SymbolInformation'Constructor = SymbolInformation'DataFamily
+  succ SymbolInformation'DataFamily = SymbolInformation'Enum
+  succ SymbolInformation'Enum = SymbolInformation'EnumMember
+  succ SymbolInformation'EnumMember = SymbolInformation'Event
+  succ SymbolInformation'Event = SymbolInformation'Fact
+  succ SymbolInformation'Fact = SymbolInformation'Field
+  succ SymbolInformation'Field = SymbolInformation'File
+  succ SymbolInformation'File = SymbolInformation'Function
+  succ SymbolInformation'Function = SymbolInformation'Getter
+  succ SymbolInformation'Getter = SymbolInformation'Grammar
+  succ SymbolInformation'Grammar = SymbolInformation'Instance
+  succ SymbolInformation'Instance = SymbolInformation'Interface
+  succ SymbolInformation'Interface = SymbolInformation'Key
+  succ SymbolInformation'Key = SymbolInformation'Lang
+  succ SymbolInformation'Lang = SymbolInformation'Lemma
+  succ SymbolInformation'Lemma = SymbolInformation'Macro
+  succ SymbolInformation'Macro = SymbolInformation'Method
+  succ SymbolInformation'Method = SymbolInformation'MethodReceiver
+  succ SymbolInformation'MethodReceiver = SymbolInformation'Message
+  succ SymbolInformation'Message = SymbolInformation'Module
+  succ SymbolInformation'Module = SymbolInformation'Namespace
+  succ SymbolInformation'Namespace = SymbolInformation'Null
+  succ SymbolInformation'Null = SymbolInformation'Number
+  succ SymbolInformation'Number = SymbolInformation'Object
+  succ SymbolInformation'Object = SymbolInformation'Operator
+  succ SymbolInformation'Operator = SymbolInformation'Package
+  succ SymbolInformation'Package = SymbolInformation'PackageObject
+  succ SymbolInformation'PackageObject = SymbolInformation'Parameter
+  succ SymbolInformation'Parameter = SymbolInformation'ParameterLabel
+  succ SymbolInformation'ParameterLabel = SymbolInformation'Pattern
+  succ SymbolInformation'Pattern = SymbolInformation'Predicate
+  succ SymbolInformation'Predicate = SymbolInformation'Property
+  succ SymbolInformation'Property = SymbolInformation'Protocol
+  succ SymbolInformation'Protocol = SymbolInformation'Quasiquoter
+  succ SymbolInformation'Quasiquoter
+    = SymbolInformation'SelfParameter
+  succ SymbolInformation'SelfParameter = SymbolInformation'Setter
+  succ SymbolInformation'Setter = SymbolInformation'Signature
+  succ SymbolInformation'Signature = SymbolInformation'Subscript
+  succ SymbolInformation'Subscript = SymbolInformation'String
+  succ SymbolInformation'String = SymbolInformation'Struct
+  succ SymbolInformation'Struct = SymbolInformation'Tactic
+  succ SymbolInformation'Tactic = SymbolInformation'Theorem
+  succ SymbolInformation'Theorem = SymbolInformation'ThisParameter
+  succ SymbolInformation'ThisParameter = SymbolInformation'Trait
+  succ SymbolInformation'Trait = SymbolInformation'Type
+  succ SymbolInformation'Type = SymbolInformation'TypeAlias
+  succ SymbolInformation'TypeAlias = SymbolInformation'TypeClass
+  succ SymbolInformation'TypeClass = SymbolInformation'TypeFamily
+  succ SymbolInformation'TypeFamily = SymbolInformation'TypeParameter
+  succ SymbolInformation'TypeParameter = SymbolInformation'Union
+  succ SymbolInformation'Union = SymbolInformation'Value
+  succ SymbolInformation'Value = SymbolInformation'Variable
+  succ SymbolInformation'Variable = SymbolInformation'Contract
+  succ SymbolInformation'Contract = SymbolInformation'Error
+  succ SymbolInformation'Error = SymbolInformation'Library
+  succ SymbolInformation'Library = SymbolInformation'Modifier
+  succ SymbolInformation'Modifier = SymbolInformation'AbstractMethod
+  succ SymbolInformation'AbstractMethod
+    = SymbolInformation'MethodSpecification
+  succ SymbolInformation'MethodSpecification
+    = SymbolInformation'ProtocolMethod
+  succ SymbolInformation'ProtocolMethod
+    = SymbolInformation'PureVirtualMethod
+  succ SymbolInformation'PureVirtualMethod
+    = SymbolInformation'TraitMethod
+  succ SymbolInformation'TraitMethod
+    = SymbolInformation'TypeClassMethod
+  succ SymbolInformation'TypeClassMethod = SymbolInformation'Accessor
+  succ SymbolInformation'Accessor = SymbolInformation'Delegate
+  succ SymbolInformation'Delegate = SymbolInformation'MethodAlias
+  succ SymbolInformation'MethodAlias
+    = SymbolInformation'SingletonClass
+  succ SymbolInformation'SingletonClass
+    = SymbolInformation'SingletonMethod
+  succ SymbolInformation'SingletonMethod
+    = SymbolInformation'StaticDataMember
+  succ SymbolInformation'StaticDataMember
+    = SymbolInformation'StaticEvent
+  succ SymbolInformation'StaticEvent = SymbolInformation'StaticField
+  succ SymbolInformation'StaticField = SymbolInformation'StaticMethod
+  succ SymbolInformation'StaticMethod
+    = SymbolInformation'StaticProperty
+  succ SymbolInformation'StaticProperty
+    = SymbolInformation'StaticVariable
+  succ SymbolInformation'StaticVariable = SymbolInformation'Extension
+  succ SymbolInformation'Extension = SymbolInformation'Mixin
+  succ SymbolInformation'Mixin = SymbolInformation'Concept
+  succ (SymbolInformation'Kind'Unrecognized _)
+    = Prelude.error
+        "SymbolInformation'Kind.succ: bad argument: unrecognized value"
+  pred SymbolInformation'UnspecifiedKind
+    = Prelude.error
+        "SymbolInformation'Kind.pred: bad argument SymbolInformation'UnspecifiedKind. This value would be out of bounds."
+  pred SymbolInformation'Array = SymbolInformation'UnspecifiedKind
+  pred SymbolInformation'Assertion = SymbolInformation'Array
+  pred SymbolInformation'AssociatedType = SymbolInformation'Assertion
+  pred SymbolInformation'Attribute = SymbolInformation'AssociatedType
+  pred SymbolInformation'Axiom = SymbolInformation'Attribute
+  pred SymbolInformation'Boolean = SymbolInformation'Axiom
+  pred SymbolInformation'Class = SymbolInformation'Boolean
+  pred SymbolInformation'Constant = SymbolInformation'Class
+  pred SymbolInformation'Constructor = SymbolInformation'Constant
+  pred SymbolInformation'DataFamily = SymbolInformation'Constructor
+  pred SymbolInformation'Enum = SymbolInformation'DataFamily
+  pred SymbolInformation'EnumMember = SymbolInformation'Enum
+  pred SymbolInformation'Event = SymbolInformation'EnumMember
+  pred SymbolInformation'Fact = SymbolInformation'Event
+  pred SymbolInformation'Field = SymbolInformation'Fact
+  pred SymbolInformation'File = SymbolInformation'Field
+  pred SymbolInformation'Function = SymbolInformation'File
+  pred SymbolInformation'Getter = SymbolInformation'Function
+  pred SymbolInformation'Grammar = SymbolInformation'Getter
+  pred SymbolInformation'Instance = SymbolInformation'Grammar
+  pred SymbolInformation'Interface = SymbolInformation'Instance
+  pred SymbolInformation'Key = SymbolInformation'Interface
+  pred SymbolInformation'Lang = SymbolInformation'Key
+  pred SymbolInformation'Lemma = SymbolInformation'Lang
+  pred SymbolInformation'Macro = SymbolInformation'Lemma
+  pred SymbolInformation'Method = SymbolInformation'Macro
+  pred SymbolInformation'MethodReceiver = SymbolInformation'Method
+  pred SymbolInformation'Message = SymbolInformation'MethodReceiver
+  pred SymbolInformation'Module = SymbolInformation'Message
+  pred SymbolInformation'Namespace = SymbolInformation'Module
+  pred SymbolInformation'Null = SymbolInformation'Namespace
+  pred SymbolInformation'Number = SymbolInformation'Null
+  pred SymbolInformation'Object = SymbolInformation'Number
+  pred SymbolInformation'Operator = SymbolInformation'Object
+  pred SymbolInformation'Package = SymbolInformation'Operator
+  pred SymbolInformation'PackageObject = SymbolInformation'Package
+  pred SymbolInformation'Parameter = SymbolInformation'PackageObject
+  pred SymbolInformation'ParameterLabel = SymbolInformation'Parameter
+  pred SymbolInformation'Pattern = SymbolInformation'ParameterLabel
+  pred SymbolInformation'Predicate = SymbolInformation'Pattern
+  pred SymbolInformation'Property = SymbolInformation'Predicate
+  pred SymbolInformation'Protocol = SymbolInformation'Property
+  pred SymbolInformation'Quasiquoter = SymbolInformation'Protocol
+  pred SymbolInformation'SelfParameter
+    = SymbolInformation'Quasiquoter
+  pred SymbolInformation'Setter = SymbolInformation'SelfParameter
+  pred SymbolInformation'Signature = SymbolInformation'Setter
+  pred SymbolInformation'Subscript = SymbolInformation'Signature
+  pred SymbolInformation'String = SymbolInformation'Subscript
+  pred SymbolInformation'Struct = SymbolInformation'String
+  pred SymbolInformation'Tactic = SymbolInformation'Struct
+  pred SymbolInformation'Theorem = SymbolInformation'Tactic
+  pred SymbolInformation'ThisParameter = SymbolInformation'Theorem
+  pred SymbolInformation'Trait = SymbolInformation'ThisParameter
+  pred SymbolInformation'Type = SymbolInformation'Trait
+  pred SymbolInformation'TypeAlias = SymbolInformation'Type
+  pred SymbolInformation'TypeClass = SymbolInformation'TypeAlias
+  pred SymbolInformation'TypeFamily = SymbolInformation'TypeClass
+  pred SymbolInformation'TypeParameter = SymbolInformation'TypeFamily
+  pred SymbolInformation'Union = SymbolInformation'TypeParameter
+  pred SymbolInformation'Value = SymbolInformation'Union
+  pred SymbolInformation'Variable = SymbolInformation'Value
+  pred SymbolInformation'Contract = SymbolInformation'Variable
+  pred SymbolInformation'Error = SymbolInformation'Contract
+  pred SymbolInformation'Library = SymbolInformation'Error
+  pred SymbolInformation'Modifier = SymbolInformation'Library
+  pred SymbolInformation'AbstractMethod = SymbolInformation'Modifier
+  pred SymbolInformation'MethodSpecification
+    = SymbolInformation'AbstractMethod
+  pred SymbolInformation'ProtocolMethod
+    = SymbolInformation'MethodSpecification
+  pred SymbolInformation'PureVirtualMethod
+    = SymbolInformation'ProtocolMethod
+  pred SymbolInformation'TraitMethod
+    = SymbolInformation'PureVirtualMethod
+  pred SymbolInformation'TypeClassMethod
+    = SymbolInformation'TraitMethod
+  pred SymbolInformation'Accessor = SymbolInformation'TypeClassMethod
+  pred SymbolInformation'Delegate = SymbolInformation'Accessor
+  pred SymbolInformation'MethodAlias = SymbolInformation'Delegate
+  pred SymbolInformation'SingletonClass
+    = SymbolInformation'MethodAlias
+  pred SymbolInformation'SingletonMethod
+    = SymbolInformation'SingletonClass
+  pred SymbolInformation'StaticDataMember
+    = SymbolInformation'SingletonMethod
+  pred SymbolInformation'StaticEvent
+    = SymbolInformation'StaticDataMember
+  pred SymbolInformation'StaticField = SymbolInformation'StaticEvent
+  pred SymbolInformation'StaticMethod = SymbolInformation'StaticField
+  pred SymbolInformation'StaticProperty
+    = SymbolInformation'StaticMethod
+  pred SymbolInformation'StaticVariable
+    = SymbolInformation'StaticProperty
+  pred SymbolInformation'Extension = SymbolInformation'StaticVariable
+  pred SymbolInformation'Mixin = SymbolInformation'Extension
+  pred SymbolInformation'Concept = SymbolInformation'Mixin
+  pred (SymbolInformation'Kind'Unrecognized _)
+    = Prelude.error
+        "SymbolInformation'Kind.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault SymbolInformation'Kind where
+  fieldDefault = SymbolInformation'UnspecifiedKind
+instance Control.DeepSeq.NFData SymbolInformation'Kind where
+  rnf x__ = Prelude.seq x__ ()
+newtype SymbolRole'UnrecognizedValue
+  = SymbolRole'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data SymbolRole
+  = UnspecifiedSymbolRole |
+    Definition |
+    Import |
+    WriteAccess |
+    ReadAccess |
+    Generated |
+    Test |
+    ForwardDefinition |
+    SymbolRole'Unrecognized !SymbolRole'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum SymbolRole where
+  maybeToEnum 0 = Prelude.Just UnspecifiedSymbolRole
+  maybeToEnum 1 = Prelude.Just Definition
+  maybeToEnum 2 = Prelude.Just Import
+  maybeToEnum 4 = Prelude.Just WriteAccess
+  maybeToEnum 8 = Prelude.Just ReadAccess
+  maybeToEnum 16 = Prelude.Just Generated
+  maybeToEnum 32 = Prelude.Just Test
+  maybeToEnum 64 = Prelude.Just ForwardDefinition
+  maybeToEnum k
+    = Prelude.Just
+        (SymbolRole'Unrecognized
+           (SymbolRole'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedSymbolRole = "UnspecifiedSymbolRole"
+  showEnum Definition = "Definition"
+  showEnum Import = "Import"
+  showEnum WriteAccess = "WriteAccess"
+  showEnum ReadAccess = "ReadAccess"
+  showEnum Generated = "Generated"
+  showEnum Test = "Test"
+  showEnum ForwardDefinition = "ForwardDefinition"
+  showEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedSymbolRole"
+    = Prelude.Just UnspecifiedSymbolRole
+    | (Prelude.==) k "Definition" = Prelude.Just Definition
+    | (Prelude.==) k "Import" = Prelude.Just Import
+    | (Prelude.==) k "WriteAccess" = Prelude.Just WriteAccess
+    | (Prelude.==) k "ReadAccess" = Prelude.Just ReadAccess
+    | (Prelude.==) k "Generated" = Prelude.Just Generated
+    | (Prelude.==) k "Test" = Prelude.Just Test
+    | (Prelude.==) k "ForwardDefinition"
+    = Prelude.Just ForwardDefinition
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded SymbolRole where
+  minBound = UnspecifiedSymbolRole
+  maxBound = ForwardDefinition
+instance Prelude.Enum SymbolRole where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum SymbolRole: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedSymbolRole = 0
+  fromEnum Definition = 1
+  fromEnum Import = 2
+  fromEnum WriteAccess = 4
+  fromEnum ReadAccess = 8
+  fromEnum Generated = 16
+  fromEnum Test = 32
+  fromEnum ForwardDefinition = 64
+  fromEnum (SymbolRole'Unrecognized (SymbolRole'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ ForwardDefinition
+    = Prelude.error
+        "SymbolRole.succ: bad argument ForwardDefinition. This value would be out of bounds."
+  succ UnspecifiedSymbolRole = Definition
+  succ Definition = Import
+  succ Import = WriteAccess
+  succ WriteAccess = ReadAccess
+  succ ReadAccess = Generated
+  succ Generated = Test
+  succ Test = ForwardDefinition
+  succ (SymbolRole'Unrecognized _)
+    = Prelude.error "SymbolRole.succ: bad argument: unrecognized value"
+  pred UnspecifiedSymbolRole
+    = Prelude.error
+        "SymbolRole.pred: bad argument UnspecifiedSymbolRole. This value would be out of bounds."
+  pred Definition = UnspecifiedSymbolRole
+  pred Import = Definition
+  pred WriteAccess = Import
+  pred ReadAccess = WriteAccess
+  pred Generated = ReadAccess
+  pred Test = Generated
+  pred ForwardDefinition = Test
+  pred (SymbolRole'Unrecognized _)
+    = Prelude.error "SymbolRole.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault SymbolRole where
+  fieldDefault = UnspecifiedSymbolRole
+instance Control.DeepSeq.NFData SymbolRole where
+  rnf x__ = Prelude.seq x__ ()
+newtype SyntaxKind'UnrecognizedValue
+  = SyntaxKind'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data SyntaxKind
+  = UnspecifiedSyntaxKind |
+    Comment |
+    PunctuationDelimiter |
+    PunctuationBracket |
+    Keyword |
+    IdentifierOperator |
+    Identifier |
+    IdentifierBuiltin |
+    IdentifierNull |
+    IdentifierConstant |
+    IdentifierMutableGlobal |
+    IdentifierParameter |
+    IdentifierLocal |
+    IdentifierShadowed |
+    IdentifierNamespace |
+    IdentifierFunction |
+    IdentifierFunctionDefinition |
+    IdentifierMacro |
+    IdentifierMacroDefinition |
+    IdentifierType |
+    IdentifierBuiltinType |
+    IdentifierAttribute |
+    RegexEscape |
+    RegexRepeated |
+    RegexWildcard |
+    RegexDelimiter |
+    RegexJoin |
+    StringLiteral |
+    StringLiteralEscape |
+    StringLiteralSpecial |
+    StringLiteralKey |
+    CharacterLiteral |
+    NumericLiteral |
+    BooleanLiteral |
+    Tag |
+    TagAttribute |
+    TagDelimiter |
+    SyntaxKind'Unrecognized !SyntaxKind'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum SyntaxKind where
+  maybeToEnum 0 = Prelude.Just UnspecifiedSyntaxKind
+  maybeToEnum 1 = Prelude.Just Comment
+  maybeToEnum 2 = Prelude.Just PunctuationDelimiter
+  maybeToEnum 3 = Prelude.Just PunctuationBracket
+  maybeToEnum 4 = Prelude.Just Keyword
+  maybeToEnum 5 = Prelude.Just IdentifierOperator
+  maybeToEnum 6 = Prelude.Just Identifier
+  maybeToEnum 7 = Prelude.Just IdentifierBuiltin
+  maybeToEnum 8 = Prelude.Just IdentifierNull
+  maybeToEnum 9 = Prelude.Just IdentifierConstant
+  maybeToEnum 10 = Prelude.Just IdentifierMutableGlobal
+  maybeToEnum 11 = Prelude.Just IdentifierParameter
+  maybeToEnum 12 = Prelude.Just IdentifierLocal
+  maybeToEnum 13 = Prelude.Just IdentifierShadowed
+  maybeToEnum 14 = Prelude.Just IdentifierNamespace
+  maybeToEnum 15 = Prelude.Just IdentifierFunction
+  maybeToEnum 16 = Prelude.Just IdentifierFunctionDefinition
+  maybeToEnum 17 = Prelude.Just IdentifierMacro
+  maybeToEnum 18 = Prelude.Just IdentifierMacroDefinition
+  maybeToEnum 19 = Prelude.Just IdentifierType
+  maybeToEnum 20 = Prelude.Just IdentifierBuiltinType
+  maybeToEnum 21 = Prelude.Just IdentifierAttribute
+  maybeToEnum 22 = Prelude.Just RegexEscape
+  maybeToEnum 23 = Prelude.Just RegexRepeated
+  maybeToEnum 24 = Prelude.Just RegexWildcard
+  maybeToEnum 25 = Prelude.Just RegexDelimiter
+  maybeToEnum 26 = Prelude.Just RegexJoin
+  maybeToEnum 27 = Prelude.Just StringLiteral
+  maybeToEnum 28 = Prelude.Just StringLiteralEscape
+  maybeToEnum 29 = Prelude.Just StringLiteralSpecial
+  maybeToEnum 30 = Prelude.Just StringLiteralKey
+  maybeToEnum 31 = Prelude.Just CharacterLiteral
+  maybeToEnum 32 = Prelude.Just NumericLiteral
+  maybeToEnum 33 = Prelude.Just BooleanLiteral
+  maybeToEnum 34 = Prelude.Just Tag
+  maybeToEnum 35 = Prelude.Just TagAttribute
+  maybeToEnum 36 = Prelude.Just TagDelimiter
+  maybeToEnum k
+    = Prelude.Just
+        (SyntaxKind'Unrecognized
+           (SyntaxKind'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedSyntaxKind = "UnspecifiedSyntaxKind"
+  showEnum Comment = "Comment"
+  showEnum PunctuationDelimiter = "PunctuationDelimiter"
+  showEnum PunctuationBracket = "PunctuationBracket"
+  showEnum Keyword = "Keyword"
+  showEnum IdentifierOperator = "IdentifierOperator"
+  showEnum Identifier = "Identifier"
+  showEnum IdentifierBuiltin = "IdentifierBuiltin"
+  showEnum IdentifierNull = "IdentifierNull"
+  showEnum IdentifierConstant = "IdentifierConstant"
+  showEnum IdentifierMutableGlobal = "IdentifierMutableGlobal"
+  showEnum IdentifierParameter = "IdentifierParameter"
+  showEnum IdentifierLocal = "IdentifierLocal"
+  showEnum IdentifierShadowed = "IdentifierShadowed"
+  showEnum IdentifierNamespace = "IdentifierNamespace"
+  showEnum IdentifierFunction = "IdentifierFunction"
+  showEnum IdentifierFunctionDefinition
+    = "IdentifierFunctionDefinition"
+  showEnum IdentifierMacro = "IdentifierMacro"
+  showEnum IdentifierMacroDefinition = "IdentifierMacroDefinition"
+  showEnum IdentifierType = "IdentifierType"
+  showEnum IdentifierBuiltinType = "IdentifierBuiltinType"
+  showEnum IdentifierAttribute = "IdentifierAttribute"
+  showEnum RegexEscape = "RegexEscape"
+  showEnum RegexRepeated = "RegexRepeated"
+  showEnum RegexWildcard = "RegexWildcard"
+  showEnum RegexDelimiter = "RegexDelimiter"
+  showEnum RegexJoin = "RegexJoin"
+  showEnum StringLiteral = "StringLiteral"
+  showEnum StringLiteralEscape = "StringLiteralEscape"
+  showEnum StringLiteralSpecial = "StringLiteralSpecial"
+  showEnum StringLiteralKey = "StringLiteralKey"
+  showEnum CharacterLiteral = "CharacterLiteral"
+  showEnum NumericLiteral = "NumericLiteral"
+  showEnum BooleanLiteral = "BooleanLiteral"
+  showEnum Tag = "Tag"
+  showEnum TagAttribute = "TagAttribute"
+  showEnum TagDelimiter = "TagDelimiter"
+  showEnum (SyntaxKind'Unrecognized (SyntaxKind'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedSyntaxKind"
+    = Prelude.Just UnspecifiedSyntaxKind
+    | (Prelude.==) k "Comment" = Prelude.Just Comment
+    | (Prelude.==) k "PunctuationDelimiter"
+    = Prelude.Just PunctuationDelimiter
+    | (Prelude.==) k "PunctuationBracket"
+    = Prelude.Just PunctuationBracket
+    | (Prelude.==) k "Keyword" = Prelude.Just Keyword
+    | (Prelude.==) k "IdentifierKeyword"
+    = Prelude.Just IdentifierKeyword
+    | (Prelude.==) k "IdentifierOperator"
+    = Prelude.Just IdentifierOperator
+    | (Prelude.==) k "Identifier" = Prelude.Just Identifier
+    | (Prelude.==) k "IdentifierBuiltin"
+    = Prelude.Just IdentifierBuiltin
+    | (Prelude.==) k "IdentifierNull" = Prelude.Just IdentifierNull
+    | (Prelude.==) k "IdentifierConstant"
+    = Prelude.Just IdentifierConstant
+    | (Prelude.==) k "IdentifierMutableGlobal"
+    = Prelude.Just IdentifierMutableGlobal
+    | (Prelude.==) k "IdentifierParameter"
+    = Prelude.Just IdentifierParameter
+    | (Prelude.==) k "IdentifierLocal" = Prelude.Just IdentifierLocal
+    | (Prelude.==) k "IdentifierShadowed"
+    = Prelude.Just IdentifierShadowed
+    | (Prelude.==) k "IdentifierNamespace"
+    = Prelude.Just IdentifierNamespace
+    | (Prelude.==) k "IdentifierModule" = Prelude.Just IdentifierModule
+    | (Prelude.==) k "IdentifierFunction"
+    = Prelude.Just IdentifierFunction
+    | (Prelude.==) k "IdentifierFunctionDefinition"
+    = Prelude.Just IdentifierFunctionDefinition
+    | (Prelude.==) k "IdentifierMacro" = Prelude.Just IdentifierMacro
+    | (Prelude.==) k "IdentifierMacroDefinition"
+    = Prelude.Just IdentifierMacroDefinition
+    | (Prelude.==) k "IdentifierType" = Prelude.Just IdentifierType
+    | (Prelude.==) k "IdentifierBuiltinType"
+    = Prelude.Just IdentifierBuiltinType
+    | (Prelude.==) k "IdentifierAttribute"
+    = Prelude.Just IdentifierAttribute
+    | (Prelude.==) k "RegexEscape" = Prelude.Just RegexEscape
+    | (Prelude.==) k "RegexRepeated" = Prelude.Just RegexRepeated
+    | (Prelude.==) k "RegexWildcard" = Prelude.Just RegexWildcard
+    | (Prelude.==) k "RegexDelimiter" = Prelude.Just RegexDelimiter
+    | (Prelude.==) k "RegexJoin" = Prelude.Just RegexJoin
+    | (Prelude.==) k "StringLiteral" = Prelude.Just StringLiteral
+    | (Prelude.==) k "StringLiteralEscape"
+    = Prelude.Just StringLiteralEscape
+    | (Prelude.==) k "StringLiteralSpecial"
+    = Prelude.Just StringLiteralSpecial
+    | (Prelude.==) k "StringLiteralKey" = Prelude.Just StringLiteralKey
+    | (Prelude.==) k "CharacterLiteral" = Prelude.Just CharacterLiteral
+    | (Prelude.==) k "NumericLiteral" = Prelude.Just NumericLiteral
+    | (Prelude.==) k "BooleanLiteral" = Prelude.Just BooleanLiteral
+    | (Prelude.==) k "Tag" = Prelude.Just Tag
+    | (Prelude.==) k "TagAttribute" = Prelude.Just TagAttribute
+    | (Prelude.==) k "TagDelimiter" = Prelude.Just TagDelimiter
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded SyntaxKind where
+  minBound = UnspecifiedSyntaxKind
+  maxBound = TagDelimiter
+instance Prelude.Enum SyntaxKind where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum SyntaxKind: " (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedSyntaxKind = 0
+  fromEnum Comment = 1
+  fromEnum PunctuationDelimiter = 2
+  fromEnum PunctuationBracket = 3
+  fromEnum Keyword = 4
+  fromEnum IdentifierOperator = 5
+  fromEnum Identifier = 6
+  fromEnum IdentifierBuiltin = 7
+  fromEnum IdentifierNull = 8
+  fromEnum IdentifierConstant = 9
+  fromEnum IdentifierMutableGlobal = 10
+  fromEnum IdentifierParameter = 11
+  fromEnum IdentifierLocal = 12
+  fromEnum IdentifierShadowed = 13
+  fromEnum IdentifierNamespace = 14
+  fromEnum IdentifierFunction = 15
+  fromEnum IdentifierFunctionDefinition = 16
+  fromEnum IdentifierMacro = 17
+  fromEnum IdentifierMacroDefinition = 18
+  fromEnum IdentifierType = 19
+  fromEnum IdentifierBuiltinType = 20
+  fromEnum IdentifierAttribute = 21
+  fromEnum RegexEscape = 22
+  fromEnum RegexRepeated = 23
+  fromEnum RegexWildcard = 24
+  fromEnum RegexDelimiter = 25
+  fromEnum RegexJoin = 26
+  fromEnum StringLiteral = 27
+  fromEnum StringLiteralEscape = 28
+  fromEnum StringLiteralSpecial = 29
+  fromEnum StringLiteralKey = 30
+  fromEnum CharacterLiteral = 31
+  fromEnum NumericLiteral = 32
+  fromEnum BooleanLiteral = 33
+  fromEnum Tag = 34
+  fromEnum TagAttribute = 35
+  fromEnum TagDelimiter = 36
+  fromEnum (SyntaxKind'Unrecognized (SyntaxKind'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ TagDelimiter
+    = Prelude.error
+        "SyntaxKind.succ: bad argument TagDelimiter. This value would be out of bounds."
+  succ UnspecifiedSyntaxKind = Comment
+  succ Comment = PunctuationDelimiter
+  succ PunctuationDelimiter = PunctuationBracket
+  succ PunctuationBracket = Keyword
+  succ Keyword = IdentifierOperator
+  succ IdentifierOperator = Identifier
+  succ Identifier = IdentifierBuiltin
+  succ IdentifierBuiltin = IdentifierNull
+  succ IdentifierNull = IdentifierConstant
+  succ IdentifierConstant = IdentifierMutableGlobal
+  succ IdentifierMutableGlobal = IdentifierParameter
+  succ IdentifierParameter = IdentifierLocal
+  succ IdentifierLocal = IdentifierShadowed
+  succ IdentifierShadowed = IdentifierNamespace
+  succ IdentifierNamespace = IdentifierFunction
+  succ IdentifierFunction = IdentifierFunctionDefinition
+  succ IdentifierFunctionDefinition = IdentifierMacro
+  succ IdentifierMacro = IdentifierMacroDefinition
+  succ IdentifierMacroDefinition = IdentifierType
+  succ IdentifierType = IdentifierBuiltinType
+  succ IdentifierBuiltinType = IdentifierAttribute
+  succ IdentifierAttribute = RegexEscape
+  succ RegexEscape = RegexRepeated
+  succ RegexRepeated = RegexWildcard
+  succ RegexWildcard = RegexDelimiter
+  succ RegexDelimiter = RegexJoin
+  succ RegexJoin = StringLiteral
+  succ StringLiteral = StringLiteralEscape
+  succ StringLiteralEscape = StringLiteralSpecial
+  succ StringLiteralSpecial = StringLiteralKey
+  succ StringLiteralKey = CharacterLiteral
+  succ CharacterLiteral = NumericLiteral
+  succ NumericLiteral = BooleanLiteral
+  succ BooleanLiteral = Tag
+  succ Tag = TagAttribute
+  succ TagAttribute = TagDelimiter
+  succ (SyntaxKind'Unrecognized _)
+    = Prelude.error "SyntaxKind.succ: bad argument: unrecognized value"
+  pred UnspecifiedSyntaxKind
+    = Prelude.error
+        "SyntaxKind.pred: bad argument UnspecifiedSyntaxKind. This value would be out of bounds."
+  pred Comment = UnspecifiedSyntaxKind
+  pred PunctuationDelimiter = Comment
+  pred PunctuationBracket = PunctuationDelimiter
+  pred Keyword = PunctuationBracket
+  pred IdentifierOperator = Keyword
+  pred Identifier = IdentifierOperator
+  pred IdentifierBuiltin = Identifier
+  pred IdentifierNull = IdentifierBuiltin
+  pred IdentifierConstant = IdentifierNull
+  pred IdentifierMutableGlobal = IdentifierConstant
+  pred IdentifierParameter = IdentifierMutableGlobal
+  pred IdentifierLocal = IdentifierParameter
+  pred IdentifierShadowed = IdentifierLocal
+  pred IdentifierNamespace = IdentifierShadowed
+  pred IdentifierFunction = IdentifierNamespace
+  pred IdentifierFunctionDefinition = IdentifierFunction
+  pred IdentifierMacro = IdentifierFunctionDefinition
+  pred IdentifierMacroDefinition = IdentifierMacro
+  pred IdentifierType = IdentifierMacroDefinition
+  pred IdentifierBuiltinType = IdentifierType
+  pred IdentifierAttribute = IdentifierBuiltinType
+  pred RegexEscape = IdentifierAttribute
+  pred RegexRepeated = RegexEscape
+  pred RegexWildcard = RegexRepeated
+  pred RegexDelimiter = RegexWildcard
+  pred RegexJoin = RegexDelimiter
+  pred StringLiteral = RegexJoin
+  pred StringLiteralEscape = StringLiteral
+  pred StringLiteralSpecial = StringLiteralEscape
+  pred StringLiteralKey = StringLiteralSpecial
+  pred CharacterLiteral = StringLiteralKey
+  pred NumericLiteral = CharacterLiteral
+  pred BooleanLiteral = NumericLiteral
+  pred Tag = BooleanLiteral
+  pred TagAttribute = Tag
+  pred TagDelimiter = TagAttribute
+  pred (SyntaxKind'Unrecognized _)
+    = Prelude.error "SyntaxKind.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault SyntaxKind where
+  fieldDefault = UnspecifiedSyntaxKind
+instance Control.DeepSeq.NFData SyntaxKind where
+  rnf x__ = Prelude.seq x__ ()
+pattern IdentifierKeyword :: SyntaxKind
+pattern IdentifierKeyword = Keyword
+pattern IdentifierModule :: SyntaxKind
+pattern IdentifierModule = IdentifierNamespace
+newtype TextEncoding'UnrecognizedValue
+  = TextEncoding'UnrecognizedValue Data.Int.Int32
+  deriving stock (Prelude.Eq, Prelude.Ord, Prelude.Show)
+data TextEncoding
+  = UnspecifiedTextEncoding |
+    UTF8 |
+    UTF16 |
+    TextEncoding'Unrecognized !TextEncoding'UnrecognizedValue
+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)
+instance Data.ProtoLens.MessageEnum TextEncoding where
+  maybeToEnum 0 = Prelude.Just UnspecifiedTextEncoding
+  maybeToEnum 1 = Prelude.Just UTF8
+  maybeToEnum 2 = Prelude.Just UTF16
+  maybeToEnum k
+    = Prelude.Just
+        (TextEncoding'Unrecognized
+           (TextEncoding'UnrecognizedValue (Prelude.fromIntegral k)))
+  showEnum UnspecifiedTextEncoding = "UnspecifiedTextEncoding"
+  showEnum UTF8 = "UTF8"
+  showEnum UTF16 = "UTF16"
+  showEnum
+    (TextEncoding'Unrecognized (TextEncoding'UnrecognizedValue k))
+    = Prelude.show k
+  readEnum k
+    | (Prelude.==) k "UnspecifiedTextEncoding"
+    = Prelude.Just UnspecifiedTextEncoding
+    | (Prelude.==) k "UTF8" = Prelude.Just UTF8
+    | (Prelude.==) k "UTF16" = Prelude.Just UTF16
+    | Prelude.otherwise
+    = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum
+instance Prelude.Bounded TextEncoding where
+  minBound = UnspecifiedTextEncoding
+  maxBound = UTF16
+instance Prelude.Enum TextEncoding where
+  toEnum k__
+    = Prelude.maybe
+        (Prelude.error
+           ((Prelude.++)
+              "toEnum: unknown value for enum TextEncoding: "
+              (Prelude.show k__)))
+        Prelude.id (Data.ProtoLens.maybeToEnum k__)
+  fromEnum UnspecifiedTextEncoding = 0
+  fromEnum UTF8 = 1
+  fromEnum UTF16 = 2
+  fromEnum
+    (TextEncoding'Unrecognized (TextEncoding'UnrecognizedValue k))
+    = Prelude.fromIntegral k
+  succ UTF16
+    = Prelude.error
+        "TextEncoding.succ: bad argument UTF16. This value would be out of bounds."
+  succ UnspecifiedTextEncoding = UTF8
+  succ UTF8 = UTF16
+  succ (TextEncoding'Unrecognized _)
+    = Prelude.error
+        "TextEncoding.succ: bad argument: unrecognized value"
+  pred UnspecifiedTextEncoding
+    = Prelude.error
+        "TextEncoding.pred: bad argument UnspecifiedTextEncoding. This value would be out of bounds."
+  pred UTF8 = UnspecifiedTextEncoding
+  pred UTF16 = UTF8
+  pred (TextEncoding'Unrecognized _)
+    = Prelude.error
+        "TextEncoding.pred: bad argument: unrecognized value"
+  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 Data.ProtoLens.FieldDefault TextEncoding where
+  fieldDefault = UnspecifiedTextEncoding
+instance Control.DeepSeq.NFData TextEncoding where
+  rnf x__ = Prelude.seq x__ ()
+{- | Fields :
+     
+         * 'Proto.Scip_Fields.name' @:: Lens' ToolInfo Data.Text.Text@
+         * 'Proto.Scip_Fields.version' @:: Lens' ToolInfo Data.Text.Text@
+         * 'Proto.Scip_Fields.arguments' @:: Lens' ToolInfo [Data.Text.Text]@
+         * 'Proto.Scip_Fields.vec'arguments' @:: Lens' ToolInfo (Data.Vector.Vector Data.Text.Text)@ -}
+data ToolInfo
+  = ToolInfo'_constructor {_ToolInfo'name :: !Data.Text.Text,
+                           _ToolInfo'version :: !Data.Text.Text,
+                           _ToolInfo'arguments :: !(Data.Vector.Vector Data.Text.Text),
+                           _ToolInfo'_unknownFields :: !Data.ProtoLens.FieldSet}
+  deriving stock (Prelude.Eq, Prelude.Ord)
+instance Prelude.Show ToolInfo where
+  showsPrec _ __x __s
+    = Prelude.showChar
+        '{'
+        (Prelude.showString
+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))
+instance Data.ProtoLens.Field.HasField ToolInfo "name" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ToolInfo'name (\ x__ y__ -> x__ {_ToolInfo'name = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ToolInfo "version" Data.Text.Text where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ToolInfo'version (\ x__ y__ -> x__ {_ToolInfo'version = y__}))
+        Prelude.id
+instance Data.ProtoLens.Field.HasField ToolInfo "arguments" [Data.Text.Text] where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ToolInfo'arguments (\ x__ y__ -> x__ {_ToolInfo'arguments = y__}))
+        (Lens.Family2.Unchecked.lens
+           Data.Vector.Generic.toList
+           (\ _ y__ -> Data.Vector.Generic.fromList y__))
+instance Data.ProtoLens.Field.HasField ToolInfo "vec'arguments" (Data.Vector.Vector Data.Text.Text) where
+  fieldOf _
+    = (Prelude..)
+        (Lens.Family2.Unchecked.lens
+           _ToolInfo'arguments (\ x__ y__ -> x__ {_ToolInfo'arguments = y__}))
+        Prelude.id
+instance Data.ProtoLens.Message ToolInfo where
+  messageName _ = Data.Text.pack "scip.ToolInfo"
+  packedMessageDescriptor _
+    = "\n\
+      \\bToolInfo\DC2\DC2\n\
+      \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\
+      \\aversion\CAN\STX \SOH(\tR\aversion\DC2\FS\n\
+      \\targuments\CAN\ETX \ETX(\tR\targuments"
+  packedFileDescriptor _ = packedFileDescriptor
+  fieldsByTag
+    = let
+        name__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "name"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"name")) ::
+              Data.ProtoLens.FieldDescriptor ToolInfo
+        version__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "version"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.PlainField
+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"version")) ::
+              Data.ProtoLens.FieldDescriptor ToolInfo
+        arguments__field_descriptor
+          = Data.ProtoLens.FieldDescriptor
+              "arguments"
+              (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::
+                 Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)
+              (Data.ProtoLens.RepeatedField
+                 Data.ProtoLens.Unpacked
+                 (Data.ProtoLens.Field.field @"arguments")) ::
+              Data.ProtoLens.FieldDescriptor ToolInfo
+      in
+        Data.Map.fromList
+          [(Data.ProtoLens.Tag 1, name__field_descriptor),
+           (Data.ProtoLens.Tag 2, version__field_descriptor),
+           (Data.ProtoLens.Tag 3, arguments__field_descriptor)]
+  unknownFields
+    = Lens.Family2.Unchecked.lens
+        _ToolInfo'_unknownFields
+        (\ x__ y__ -> x__ {_ToolInfo'_unknownFields = y__})
+  defMessage
+    = ToolInfo'_constructor
+        {_ToolInfo'name = Data.ProtoLens.fieldDefault,
+         _ToolInfo'version = Data.ProtoLens.fieldDefault,
+         _ToolInfo'arguments = Data.Vector.Generic.empty,
+         _ToolInfo'_unknownFields = []}
+  parseMessage
+    = let
+        loop ::
+          ToolInfo
+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text
+             -> Data.ProtoLens.Encoding.Bytes.Parser ToolInfo
+        loop x mutable'arguments
+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd
+               if end then
+                   do frozen'arguments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                            (Data.ProtoLens.Encoding.Growing.unsafeFreeze
+                                               mutable'arguments)
+                      (let missing = []
+                       in
+                         if Prelude.null missing then
+                             Prelude.return ()
+                         else
+                             Prelude.fail
+                               ((Prelude.++)
+                                  "Missing required fields: "
+                                  (Prelude.show (missing :: [Prelude.String]))))
+                      Prelude.return
+                        (Lens.Family2.over
+                           Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t)
+                           (Lens.Family2.set
+                              (Data.ProtoLens.Field.field @"vec'arguments") frozen'arguments x))
+               else
+                   do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                      case tag of
+                        10
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "name"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)
+                                  mutable'arguments
+                        18
+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                           Data.ProtoLens.Encoding.Bytes.getText
+                                             (Prelude.fromIntegral len))
+                                       "version"
+                                loop
+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"version") y x)
+                                  mutable'arguments
+                        26
+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)
+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt
+                                            Data.ProtoLens.Encoding.Bytes.getText
+                                              (Prelude.fromIntegral len))
+                                        "arguments"
+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                       (Data.ProtoLens.Encoding.Growing.append mutable'arguments y)
+                                loop x v
+                        wire
+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire
+                                        wire
+                                loop
+                                  (Lens.Family2.over
+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)
+                                  mutable'arguments
+      in
+        (Data.ProtoLens.Encoding.Bytes.<?>)
+          (do mutable'arguments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO
+                                     Data.ProtoLens.Encoding.Growing.new
+              loop Data.ProtoLens.defMessage mutable'arguments)
+          "ToolInfo"
+  buildMessage
+    = \ _x
+        -> (Data.Monoid.<>)
+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"name") _x
+              in
+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                    Data.Monoid.mempty
+                else
+                    (Data.Monoid.<>)
+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 10)
+                      ((Prelude..)
+                         (\ bs
+                            -> (Data.Monoid.<>)
+                                 (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                    (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                 (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                         Data.Text.Encoding.encodeUtf8 _v))
+             ((Data.Monoid.<>)
+                (let
+                   _v = Lens.Family2.view (Data.ProtoLens.Field.field @"version") _x
+                 in
+                   if (Prelude.==) _v Data.ProtoLens.fieldDefault then
+                       Data.Monoid.mempty
+                   else
+                       (Data.Monoid.<>)
+                         (Data.ProtoLens.Encoding.Bytes.putVarInt 18)
+                         ((Prelude..)
+                            (\ bs
+                               -> (Data.Monoid.<>)
+                                    (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                       (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                    (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                            Data.Text.Encoding.encodeUtf8 _v))
+                ((Data.Monoid.<>)
+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder
+                      (\ _v
+                         -> (Data.Monoid.<>)
+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)
+                              ((Prelude..)
+                                 (\ bs
+                                    -> (Data.Monoid.<>)
+                                         (Data.ProtoLens.Encoding.Bytes.putVarInt
+                                            (Prelude.fromIntegral (Data.ByteString.length bs)))
+                                         (Data.ProtoLens.Encoding.Bytes.putBytes bs))
+                                 Data.Text.Encoding.encodeUtf8 _v))
+                      (Lens.Family2.view
+                         (Data.ProtoLens.Field.field @"vec'arguments") _x))
+                   (Data.ProtoLens.Encoding.Wire.buildFieldSet
+                      (Lens.Family2.view Data.ProtoLens.unknownFields _x))))
+instance Control.DeepSeq.NFData ToolInfo where
+  rnf
+    = \ x__
+        -> Control.DeepSeq.deepseq
+             (_ToolInfo'_unknownFields x__)
+             (Control.DeepSeq.deepseq
+                (_ToolInfo'name x__)
+                (Control.DeepSeq.deepseq
+                   (_ToolInfo'version x__)
+                   (Control.DeepSeq.deepseq (_ToolInfo'arguments x__) ())))
+packedFileDescriptor :: Data.ByteString.ByteString
+packedFileDescriptor
+  = "\n\
+    \\n\
+    \scip.proto\DC2\EOTscip\"\165\SOH\n\
+    \\ENQIndex\DC2*\n\
+    \\bmetadata\CAN\SOH \SOH(\v2\SO.scip.MetadataR\bmetadata\DC2,\n\
+    \\tdocuments\CAN\STX \ETX(\v2\SO.scip.DocumentR\tdocuments\DC2B\n\
+    \\DLEexternal_symbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\SIexternalSymbols\"\213\SOH\n\
+    \\bMetadata\DC2/\n\
+    \\aversion\CAN\SOH \SOH(\SO2\NAK.scip.ProtocolVersionR\aversion\DC2+\n\
+    \\ttool_info\CAN\STX \SOH(\v2\SO.scip.ToolInfoR\btoolInfo\DC2!\n\
+    \\fproject_root\CAN\ETX \SOH(\tR\vprojectRoot\DC2H\n\
+    \\SYNtext_document_encoding\CAN\EOT \SOH(\SO2\DC2.scip.TextEncodingR\DC4textDocumentEncoding\"V\n\
+    \\bToolInfo\DC2\DC2\n\
+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2\CAN\n\
+    \\aversion\CAN\STX \SOH(\tR\aversion\DC2\FS\n\
+    \\targuments\CAN\ETX \ETX(\tR\targuments\"\139\STX\n\
+    \\bDocument\DC2\SUB\n\
+    \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2#\n\
+    \\rrelative_path\CAN\SOH \SOH(\tR\frelativePath\DC22\n\
+    \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrences\DC21\n\
+    \\asymbols\CAN\ETX \ETX(\v2\ETB.scip.SymbolInformationR\asymbols\DC2\DC2\n\
+    \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC2C\n\
+    \\DC1position_encoding\CAN\ACK \SOH(\SO2\SYN.scip.PositionEncodingR\DLEpositionEncoding\"}\n\
+    \\ACKSymbol\DC2\SYN\n\
+    \\ACKscheme\CAN\SOH \SOH(\tR\ACKscheme\DC2'\n\
+    \\apackage\CAN\STX \SOH(\v2\r.scip.PackageR\apackage\DC22\n\
+    \\vdescriptors\CAN\ETX \ETX(\v2\DLE.scip.DescriptorR\vdescriptors\"Q\n\
+    \\aPackage\DC2\CAN\n\
+    \\amanager\CAN\SOH \SOH(\tR\amanager\DC2\DC2\n\
+    \\EOTname\CAN\STX \SOH(\tR\EOTname\DC2\CAN\n\
+    \\aversion\CAN\ETX \SOH(\tR\aversion\"\159\STX\n\
+    \\n\
+    \Descriptor\DC2\DC2\n\
+    \\EOTname\CAN\SOH \SOH(\tR\EOTname\DC2$\n\
+    \\rdisambiguator\CAN\STX \SOH(\tR\rdisambiguator\DC2/\n\
+    \\ACKsuffix\CAN\ETX \SOH(\SO2\ETB.scip.Descriptor.SuffixR\ACKsuffix\"\165\SOH\n\
+    \\ACKSuffix\DC2\NAK\n\
+    \\DC1UnspecifiedSuffix\DLE\NUL\DC2\r\n\
+    \\tNamespace\DLE\SOH\DC2\SI\n\
+    \\aPackage\DLE\SOH\SUB\STX\b\SOH\DC2\b\n\
+    \\EOTType\DLE\STX\DC2\b\n\
+    \\EOTTerm\DLE\ETX\DC2\n\
+    \\n\
+    \\ACKMethod\DLE\EOT\DC2\DC1\n\
+    \\rTypeParameter\DLE\ENQ\DC2\r\n\
+    \\tParameter\DLE\ACK\DC2\b\n\
+    \\EOTMeta\DLE\a\DC2\t\n\
+    \\ENQLocal\DLE\b\DC2\t\n\
+    \\ENQMacro\DLE\t\SUB\STX\DLE\SOH\"\129\SOH\n\
+    \\tSignature\DC2\SUB\n\
+    \\blanguage\CAN\EOT \SOH(\tR\blanguage\DC2\DC2\n\
+    \\EOTtext\CAN\ENQ \SOH(\tR\EOTtext\DC22\n\
+    \\voccurrences\CAN\STX \ETX(\v2\DLE.scip.OccurrenceR\voccurrencesJ\EOT\b\SOH\DLE\STXJ\EOT\b\ETX\DLE\EOTJ\EOT\b\ACK\DLE\a\"\211\f\n\
+    \\DC1SymbolInformation\DC2\SYN\n\
+    \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2$\n\
+    \\rdocumentation\CAN\ETX \ETX(\tR\rdocumentation\DC28\n\
+    \\rrelationships\CAN\EOT \ETX(\v2\DC2.scip.RelationshipR\rrelationships\DC20\n\
+    \\EOTkind\CAN\ENQ \SOH(\SO2\FS.scip.SymbolInformation.KindR\EOTkind\DC2!\n\
+    \\fdisplay_name\CAN\ACK \SOH(\tR\vdisplayName\DC2H\n\
+    \\ETBsignature_documentation\CAN\a \SOH(\v2\SI.scip.SignatureR\SYNsignatureDocumentation\DC2)\n\
+    \\DLEenclosing_symbol\CAN\b \SOH(\tR\SIenclosingSymbol\"\251\t\n\
+    \\EOTKind\DC2\DC3\n\
+    \\SIUnspecifiedKind\DLE\NUL\DC2\DC2\n\
+    \\SOAbstractMethod\DLEB\DC2\f\n\
+    \\bAccessor\DLEH\DC2\t\n\
+    \\ENQArray\DLE\SOH\DC2\r\n\
+    \\tAssertion\DLE\STX\DC2\DC2\n\
+    \\SOAssociatedType\DLE\ETX\DC2\r\n\
+    \\tAttribute\DLE\EOT\DC2\t\n\
+    \\ENQAxiom\DLE\ENQ\DC2\v\n\
+    \\aBoolean\DLE\ACK\DC2\t\n\
+    \\ENQClass\DLE\a\DC2\v\n\
+    \\aConcept\DLEV\DC2\f\n\
+    \\bConstant\DLE\b\DC2\SI\n\
+    \\vConstructor\DLE\t\DC2\f\n\
+    \\bContract\DLE>\DC2\SO\n\
+    \\n\
+    \DataFamily\DLE\n\
+    \\DC2\f\n\
+    \\bDelegate\DLEI\DC2\b\n\
+    \\EOTEnum\DLE\v\DC2\SO\n\
+    \\n\
+    \EnumMember\DLE\f\DC2\t\n\
+    \\ENQError\DLE?\DC2\t\n\
+    \\ENQEvent\DLE\r\DC2\r\n\
+    \\tExtension\DLET\DC2\b\n\
+    \\EOTFact\DLE\SO\DC2\t\n\
+    \\ENQField\DLE\SI\DC2\b\n\
+    \\EOTFile\DLE\DLE\DC2\f\n\
+    \\bFunction\DLE\DC1\DC2\n\
+    \\n\
+    \\ACKGetter\DLE\DC2\DC2\v\n\
+    \\aGrammar\DLE\DC3\DC2\f\n\
+    \\bInstance\DLE\DC4\DC2\r\n\
+    \\tInterface\DLE\NAK\DC2\a\n\
+    \\ETXKey\DLE\SYN\DC2\b\n\
+    \\EOTLang\DLE\ETB\DC2\t\n\
+    \\ENQLemma\DLE\CAN\DC2\v\n\
+    \\aLibrary\DLE@\DC2\t\n\
+    \\ENQMacro\DLE\EM\DC2\n\
+    \\n\
+    \\ACKMethod\DLE\SUB\DC2\SI\n\
+    \\vMethodAlias\DLEJ\DC2\DC2\n\
+    \\SOMethodReceiver\DLE\ESC\DC2\ETB\n\
+    \\DC3MethodSpecification\DLEC\DC2\v\n\
+    \\aMessage\DLE\FS\DC2\t\n\
+    \\ENQMixin\DLEU\DC2\f\n\
+    \\bModifier\DLEA\DC2\n\
+    \\n\
+    \\ACKModule\DLE\GS\DC2\r\n\
+    \\tNamespace\DLE\RS\DC2\b\n\
+    \\EOTNull\DLE\US\DC2\n\
+    \\n\
+    \\ACKNumber\DLE \DC2\n\
+    \\n\
+    \\ACKObject\DLE!\DC2\f\n\
+    \\bOperator\DLE\"\DC2\v\n\
+    \\aPackage\DLE#\DC2\DC1\n\
+    \\rPackageObject\DLE$\DC2\r\n\
+    \\tParameter\DLE%\DC2\DC2\n\
+    \\SOParameterLabel\DLE&\DC2\v\n\
+    \\aPattern\DLE'\DC2\r\n\
+    \\tPredicate\DLE(\DC2\f\n\
+    \\bProperty\DLE)\DC2\f\n\
+    \\bProtocol\DLE*\DC2\DC2\n\
+    \\SOProtocolMethod\DLED\DC2\NAK\n\
+    \\DC1PureVirtualMethod\DLEE\DC2\SI\n\
+    \\vQuasiquoter\DLE+\DC2\DC1\n\
+    \\rSelfParameter\DLE,\DC2\n\
+    \\n\
+    \\ACKSetter\DLE-\DC2\r\n\
+    \\tSignature\DLE.\DC2\DC2\n\
+    \\SOSingletonClass\DLEK\DC2\DC3\n\
+    \\SISingletonMethod\DLEL\DC2\DC4\n\
+    \\DLEStaticDataMember\DLEM\DC2\SI\n\
+    \\vStaticEvent\DLEN\DC2\SI\n\
+    \\vStaticField\DLEO\DC2\DLE\n\
+    \\fStaticMethod\DLEP\DC2\DC2\n\
+    \\SOStaticProperty\DLEQ\DC2\DC2\n\
+    \\SOStaticVariable\DLER\DC2\n\
+    \\n\
+    \\ACKString\DLE0\DC2\n\
+    \\n\
+    \\ACKStruct\DLE1\DC2\r\n\
+    \\tSubscript\DLE/\DC2\n\
+    \\n\
+    \\ACKTactic\DLE2\DC2\v\n\
+    \\aTheorem\DLE3\DC2\DC1\n\
+    \\rThisParameter\DLE4\DC2\t\n\
+    \\ENQTrait\DLE5\DC2\SI\n\
+    \\vTraitMethod\DLEF\DC2\b\n\
+    \\EOTType\DLE6\DC2\r\n\
+    \\tTypeAlias\DLE7\DC2\r\n\
+    \\tTypeClass\DLE8\DC2\DC3\n\
+    \\SITypeClassMethod\DLEG\DC2\SO\n\
+    \\n\
+    \TypeFamily\DLE9\DC2\DC1\n\
+    \\rTypeParameter\DLE:\DC2\t\n\
+    \\ENQUnion\DLE;\DC2\t\n\
+    \\ENQValue\DLE<\DC2\f\n\
+    \\bVariable\DLE=\"\201\SOH\n\
+    \\fRelationship\DC2\SYN\n\
+    \\ACKsymbol\CAN\SOH \SOH(\tR\ACKsymbol\DC2!\n\
+    \\fis_reference\CAN\STX \SOH(\bR\visReference\DC2+\n\
+    \\DC1is_implementation\CAN\ETX \SOH(\bR\DLEisImplementation\DC2,\n\
+    \\DC2is_type_definition\CAN\EOT \SOH(\bR\DLEisTypeDefinition\DC2#\n\
+    \\ris_definition\CAN\ENQ \SOH(\bR\fisDefinition\"s\n\
+    \\SISingleLineRange\DC2\DC2\n\
+    \\EOTline\CAN\SOH \SOH(\ENQR\EOTline\DC2'\n\
+    \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2#\n\
+    \\rend_character\CAN\ETX \SOH(\ENQR\fendCharacter\"\152\SOH\n\
+    \\SOMultiLineRange\DC2\GS\n\
+    \\n\
+    \start_line\CAN\SOH \SOH(\ENQR\tstartLine\DC2'\n\
+    \\SIstart_character\CAN\STX \SOH(\ENQR\SOstartCharacter\DC2\EM\n\
+    \\bend_line\CAN\ETX \SOH(\ENQR\aendLine\DC2#\n\
+    \\rend_character\CAN\EOT \SOH(\ENQR\fendCharacter\"\136\ENQ\n\
+    \\n\
+    \Occurrence\DC2\CAN\n\
+    \\ENQrange\CAN\SOH \ETX(\ENQR\ENQrangeB\STX\CAN\SOH\DC2C\n\
+    \\DC1single_line_range\CAN\b \SOH(\v2\NAK.scip.SingleLineRangeH\NULR\SIsingleLineRange\DC2@\n\
+    \\DLEmulti_line_range\CAN\t \SOH(\v2\DC4.scip.MultiLineRangeH\NULR\SOmultiLineRange\DC2\SYN\n\
+    \\ACKsymbol\CAN\STX \SOH(\tR\ACKsymbol\DC2!\n\
+    \\fsymbol_roles\CAN\ETX \SOH(\ENQR\vsymbolRoles\DC25\n\
+    \\SYNoverride_documentation\CAN\EOT \ETX(\tR\NAKoverrideDocumentation\DC21\n\
+    \\vsyntax_kind\CAN\ENQ \SOH(\SO2\DLE.scip.SyntaxKindR\n\
+    \syntaxKind\DC22\n\
+    \\vdiagnostics\CAN\ACK \ETX(\v2\DLE.scip.DiagnosticR\vdiagnostics\DC2+\n\
+    \\SIenclosing_range\CAN\a \ETX(\ENQR\SOenclosingRangeB\STX\CAN\SOH\DC2V\n\
+    \\ESCsingle_line_enclosing_range\CAN\n\
+    \ \SOH(\v2\NAK.scip.SingleLineRangeH\SOHR\CANsingleLineEnclosingRange\DC2S\n\
+    \\SUBmulti_line_enclosing_range\CAN\v \SOH(\v2\DC4.scip.MultiLineRangeH\SOHR\ETBmultiLineEnclosingRangeB\r\n\
+    \\vtyped_rangeB\ETB\n\
+    \\NAKtyped_enclosing_range\"\167\SOH\n\
+    \\n\
+    \Diagnostic\DC2*\n\
+    \\bseverity\CAN\SOH \SOH(\SO2\SO.scip.SeverityR\bseverity\DC2\DC2\n\
+    \\EOTcode\CAN\STX \SOH(\tR\EOTcode\DC2\CAN\n\
+    \\amessage\CAN\ETX \SOH(\tR\amessage\DC2\SYN\n\
+    \\ACKsource\CAN\EOT \SOH(\tR\ACKsource\DC2'\n\
+    \\EOTtags\CAN\ENQ \ETX(\SO2\DC3.scip.DiagnosticTagR\EOTtags*1\n\
+    \\SIProtocolVersion\DC2\RS\n\
+    \\SUBUnspecifiedProtocolVersion\DLE\NUL*@\n\
+    \\fTextEncoding\DC2\ESC\n\
+    \\ETBUnspecifiedTextEncoding\DLE\NUL\DC2\b\n\
+    \\EOTUTF8\DLE\SOH\DC2\t\n\
+    \\ENQUTF16\DLE\STX*\164\SOH\n\
+    \\DLEPositionEncoding\DC2\US\n\
+    \\ESCUnspecifiedPositionEncoding\DLE\NUL\DC2#\n\
+    \\USUTF8CodeUnitOffsetFromLineStart\DLE\SOH\DC2$\n\
+    \ UTF16CodeUnitOffsetFromLineStart\DLE\STX\DC2$\n\
+    \ UTF32CodeUnitOffsetFromLineStart\DLE\ETX*\148\SOH\n\
+    \\n\
+    \SymbolRole\DC2\EM\n\
+    \\NAKUnspecifiedSymbolRole\DLE\NUL\DC2\SO\n\
+    \\n\
+    \Definition\DLE\SOH\DC2\n\
+    \\n\
+    \\ACKImport\DLE\STX\DC2\SI\n\
+    \\vWriteAccess\DLE\EOT\DC2\SO\n\
+    \\n\
+    \ReadAccess\DLE\b\DC2\r\n\
+    \\tGenerated\DLE\DLE\DC2\b\n\
+    \\EOTTest\DLE \DC2\NAK\n\
+    \\DC1ForwardDefinition\DLE@*\234\ACK\n\
+    \\n\
+    \SyntaxKind\DC2\EM\n\
+    \\NAKUnspecifiedSyntaxKind\DLE\NUL\DC2\v\n\
+    \\aComment\DLE\SOH\DC2\CAN\n\
+    \\DC4PunctuationDelimiter\DLE\STX\DC2\SYN\n\
+    \\DC2PunctuationBracket\DLE\ETX\DC2\v\n\
+    \\aKeyword\DLE\EOT\DC2\EM\n\
+    \\DC1IdentifierKeyword\DLE\EOT\SUB\STX\b\SOH\DC2\SYN\n\
+    \\DC2IdentifierOperator\DLE\ENQ\DC2\SO\n\
+    \\n\
+    \Identifier\DLE\ACK\DC2\NAK\n\
+    \\DC1IdentifierBuiltin\DLE\a\DC2\DC2\n\
+    \\SOIdentifierNull\DLE\b\DC2\SYN\n\
+    \\DC2IdentifierConstant\DLE\t\DC2\ESC\n\
+    \\ETBIdentifierMutableGlobal\DLE\n\
+    \\DC2\ETB\n\
+    \\DC3IdentifierParameter\DLE\v\DC2\DC3\n\
+    \\SIIdentifierLocal\DLE\f\DC2\SYN\n\
+    \\DC2IdentifierShadowed\DLE\r\DC2\ETB\n\
+    \\DC3IdentifierNamespace\DLE\SO\DC2\CAN\n\
+    \\DLEIdentifierModule\DLE\SO\SUB\STX\b\SOH\DC2\SYN\n\
+    \\DC2IdentifierFunction\DLE\SI\DC2 \n\
+    \\FSIdentifierFunctionDefinition\DLE\DLE\DC2\DC3\n\
+    \\SIIdentifierMacro\DLE\DC1\DC2\GS\n\
+    \\EMIdentifierMacroDefinition\DLE\DC2\DC2\DC2\n\
+    \\SOIdentifierType\DLE\DC3\DC2\EM\n\
+    \\NAKIdentifierBuiltinType\DLE\DC4\DC2\ETB\n\
+    \\DC3IdentifierAttribute\DLE\NAK\DC2\SI\n\
+    \\vRegexEscape\DLE\SYN\DC2\DC1\n\
+    \\rRegexRepeated\DLE\ETB\DC2\DC1\n\
+    \\rRegexWildcard\DLE\CAN\DC2\DC2\n\
+    \\SORegexDelimiter\DLE\EM\DC2\r\n\
+    \\tRegexJoin\DLE\SUB\DC2\DC1\n\
+    \\rStringLiteral\DLE\ESC\DC2\ETB\n\
+    \\DC3StringLiteralEscape\DLE\FS\DC2\CAN\n\
+    \\DC4StringLiteralSpecial\DLE\GS\DC2\DC4\n\
+    \\DLEStringLiteralKey\DLE\RS\DC2\DC4\n\
+    \\DLECharacterLiteral\DLE\US\DC2\DC2\n\
+    \\SONumericLiteral\DLE \DC2\DC2\n\
+    \\SOBooleanLiteral\DLE!\DC2\a\n\
+    \\ETXTag\DLE\"\DC2\DLE\n\
+    \\fTagAttribute\DLE#\DC2\DLE\n\
+    \\fTagDelimiter\DLE$\SUB\STX\DLE\SOH*V\n\
+    \\bSeverity\DC2\ETB\n\
+    \\DC3UnspecifiedSeverity\DLE\NUL\DC2\t\n\
+    \\ENQError\DLE\SOH\DC2\v\n\
+    \\aWarning\DLE\STX\DC2\SI\n\
+    \\vInformation\DLE\ETX\DC2\b\n\
+    \\EOTHint\DLE\EOT*N\n\
+    \\rDiagnosticTag\DC2\FS\n\
+    \\CANUnspecifiedDiagnosticTag\DLE\NUL\DC2\SI\n\
+    \\vUnnecessary\DLE\SOH\DC2\SO\n\
+    \\n\
+    \Deprecated\DLE\STX*\155\n\
+    \\n\
+    \\bLanguage\DC2\ETB\n\
+    \\DC3UnspecifiedLanguage\DLE\NUL\DC2\b\n\
+    \\EOTABAP\DLE<\DC2\b\n\
+    \\EOTApex\DLE`\DC2\a\n\
+    \\ETXAPL\DLE1\DC2\a\n\
+    \\ETXAda\DLE'\DC2\b\n\
+    \\EOTAgda\DLE-\DC2\f\n\
+    \\bAsciiDoc\DLEV\DC2\f\n\
+    \\bAssembly\DLE:\DC2\a\n\
+    \\ETXAwk\DLEB\DC2\a\n\
+    \\ETXBat\DLED\DC2\n\
+    \\n\
+    \\ACKBibTeX\DLEQ\DC2\ENQ\n\
+    \\SOHC\DLE\"\DC2\t\n\
+    \\ENQCOBOL\DLE;\DC2\a\n\
+    \\ETXCPP\DLE#\DC2\a\n\
+    \\ETXCSS\DLE\SUB\DC2\n\
+    \\n\
+    \\ACKCSharp\DLE\SOH\DC2\v\n\
+    \\aClojure\DLE\b\DC2\DLE\n\
+    \\fCoffeescript\DLE\NAK\DC2\SO\n\
+    \\n\
+    \CommonLisp\DLE\t\DC2\a\n\
+    \\ETXCoq\DLE/\DC2\b\n\
+    \\EOTCUDA\DLEa\DC2\b\n\
+    \\EOTDart\DLE\ETX\DC2\n\
+    \\n\
+    \\ACKDelphi\DLE9\DC2\b\n\
+    \\EOTDiff\DLEX\DC2\SO\n\
+    \\n\
+    \Dockerfile\DLEP\DC2\n\
+    \\n\
+    \\ACKDyalog\DLE2\DC2\n\
+    \\n\
+    \\ACKElixir\DLE\DC1\DC2\n\
+    \\n\
+    \\ACKErlang\DLE\DC2\DC2\n\
+    \\n\
+    \\ACKFSharp\DLE*\DC2\b\n\
+    \\EOTFish\DLEA\DC2\b\n\
+    \\EOTFlow\DLE\CAN\DC2\v\n\
+    \\aFortran\DLE8\DC2\SO\n\
+    \\n\
+    \Git_Commit\DLE[\DC2\SO\n\
+    \\n\
+    \Git_Config\DLEY\DC2\SO\n\
+    \\n\
+    \Git_Rebase\DLE\\\DC2\ACK\n\
+    \\STXGo\DLE!\DC2\v\n\
+    \\aGraphQL\DLEb\DC2\n\
+    \\n\
+    \\ACKGroovy\DLE\a\DC2\b\n\
+    \\EOTHTML\DLE\RS\DC2\b\n\
+    \\EOTHack\DLE\DC4\DC2\SO\n\
+    \\n\
+    \Handlebars\DLEZ\DC2\v\n\
+    \\aHaskell\DLE,\DC2\t\n\
+    \\ENQIdris\DLE.\DC2\a\n\
+    \\ETXIni\DLEH\DC2\ENQ\n\
+    \\SOHJ\DLE3\DC2\b\n\
+    \\EOTJSON\DLEK\DC2\b\n\
+    \\EOTJava\DLE\ACK\DC2\SO\n\
+    \\n\
+    \JavaScript\DLE\SYN\DC2\DC3\n\
+    \\SIJavaScriptReact\DLE]\DC2\v\n\
+    \\aJsonnet\DLEL\DC2\t\n\
+    \\ENQJulia\DLE7\DC2\f\n\
+    \\bJustfile\DLEm\DC2\n\
+    \\n\
+    \\ACKKotlin\DLE\EOT\DC2\t\n\
+    \\ENQLaTeX\DLES\DC2\b\n\
+    \\EOTLean\DLE0\DC2\b\n\
+    \\EOTLess\DLE\ESC\DC2\a\n\
+    \\ETXLua\DLE\f\DC2\b\n\
+    \\EOTLuau\DLEl\DC2\f\n\
+    \\bMakefile\DLEO\DC2\f\n\
+    \\bMarkdown\DLET\DC2\n\
+    \\n\
+    \\ACKMatlab\DLE4\DC2\n\
+    \\n\
+    \\ACKNickel\DLEn\DC2\a\n\
+    \\ETXNix\DLEM\DC2\t\n\
+    \\ENQOCaml\DLE)\DC2\SI\n\
+    \\vObjective_C\DLE$\DC2\DC1\n\
+    \\rObjective_CPP\DLE%\DC2\n\
+    \\n\
+    \\ACKPascal\DLEc\DC2\a\n\
+    \\ETXPHP\DLE\DC3\DC2\t\n\
+    \\ENQPLSQL\DLEF\DC2\b\n\
+    \\EOTPerl\DLE\r\DC2\SO\n\
+    \\n\
+    \PowerShell\DLEC\DC2\n\
+    \\n\
+    \\ACKProlog\DLEG\DC2\f\n\
+    \\bProtobuf\DLEd\DC2\n\
+    \\n\
+    \\ACKPython\DLE\SI\DC2\ENQ\n\
+    \\SOHR\DLE6\DC2\n\
+    \\n\
+    \\ACKRacket\DLE\v\DC2\b\n\
+    \\EOTRaku\DLE\SO\DC2\t\n\
+    \\ENQRazor\DLE>\DC2\t\n\
+    \\ENQRepro\DLEf\DC2\b\n\
+    \\EOTReST\DLEU\DC2\b\n\
+    \\EOTRuby\DLE\DLE\DC2\b\n\
+    \\EOTRust\DLE(\DC2\a\n\
+    \\ETXSAS\DLE=\DC2\b\n\
+    \\EOTSCSS\DLE\GS\DC2\a\n\
+    \\ETXSML\DLE+\DC2\a\n\
+    \\ETXSQL\DLEE\DC2\b\n\
+    \\EOTSass\DLE\FS\DC2\t\n\
+    \\ENQScala\DLE\ENQ\DC2\n\
+    \\n\
+    \\ACKScheme\DLE\n\
+    \\DC2\SI\n\
+    \\vShellScript\DLE@\DC2\v\n\
+    \\aSkylark\DLEN\DC2\t\n\
+    \\ENQSlang\DLEk\DC2\f\n\
+    \\bSolidity\DLE_\DC2\n\
+    \\n\
+    \\ACKSvelte\DLEj\DC2\t\n\
+    \\ENQSwift\DLE\STX\DC2\a\n\
+    \\ETXTcl\DLEe\DC2\b\n\
+    \\EOTTOML\DLEI\DC2\a\n\
+    \\ETXTeX\DLER\DC2\n\
+    \\n\
+    \\ACKThrift\DLEg\DC2\SO\n\
+    \\n\
+    \TypeScript\DLE\ETB\DC2\DC3\n\
+    \\SITypeScriptReact\DLE^\DC2\v\n\
+    \\aVerilog\DLEh\DC2\b\n\
+    \\EOTVHDL\DLEi\DC2\SI\n\
+    \\vVisualBasic\DLE?\DC2\a\n\
+    \\ETXVue\DLE\EM\DC2\v\n\
+    \\aWolfram\DLE5\DC2\a\n\
+    \\ETXXML\DLE\US\DC2\a\n\
+    \\ETXXSL\DLE \DC2\b\n\
+    \\EOTYAML\DLEJ\DC2\a\n\
+    \\ETXZig\DLE&BN\n\
+    \\DC2org.scip_code.scipB\tScipProtoP\SOHZ+github.com/scip-code/scip/bindings/go/scip/J\194\213\STX\n\
+    \\a\DC2\ENQ\n\
+    \\NUL\192\a\SOH\n\
+    \\130\EOT\n\
+    \\SOH\f\DC2\ETX\n\
+    \\NUL\DC22\247\ETX An index contains one or more pieces of information about a given piece of\n\
+    \ source code or software artifact. Complementary information can be merged\n\
+    \ together from multiple sources to provide a unified code intelligence\n\
+    \ experience.\n\
+    \\n\
+    \ Programs producing a file of this format is an \"indexer\" and may operate\n\
+    \ somewhere on the spectrum between precision, such as indexes produced by\n\
+    \ compiler-backed indexers, and heurstics, such as indexes produced by local\n\
+    \ syntax-directed analysis for scope rules.\n\
+    \\n\
+    \\b\n\
+    \\SOH\STX\DC2\ETX\f\NUL\r\n\
+    \\b\n\
+    \\SOH\b\DC2\ETX\SO\NULB\n\
+    \\t\n\
+    \\STX\b\v\DC2\ETX\SO\NULB\n\
+    \\b\n\
+    \\SOH\b\DC2\ETX\SI\NUL\"\n\
+    \\t\n\
+    \\STX\b\n\
+    \\DC2\ETX\SI\NUL\"\n\
+    \\b\n\
+    \\SOH\b\DC2\ETX\DLE\NUL*\n\
+    \\t\n\
+    \\STX\b\b\DC2\ETX\DLE\NUL*\n\
+    \\b\n\
+    \\SOH\b\DC2\ETX\DC1\NUL+\n\
+    \\t\n\
+    \\STX\b\SOH\DC2\ETX\DC1\NUL+\n\
+    \\208\ETX\n\
+    \\STX\EOT\NUL\DC2\EOT\EM\NUL&\SOH\SUB\195\ETX Index represents a complete SCIP index for a workspace this is rooted at a\n\
+    \ single directory. An Index message payload can have a large memory footprint\n\
+    \ and it's therefore recommended to emit and consume an Index payload one field\n\
+    \ value at a time. To permit streaming consumption of an Index payload, the\n\
+    \ `metadata` field must appear at the start of the stream and must only appear\n\
+    \ once in the stream. Other field values may appear in any order.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\NUL\SOH\DC2\ETX\EM\b\r\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX\ESC\STX\n\
+    \\n\
+    \)\n\
+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\ESC\STX\CAN\SUB\FS Metadata about this index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\ESC\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\ESC\SYN\ETB\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\EOT\DC2\ETX\GS\STX\n\
+    \\n\
+    \3\n\
+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\GS\STX\"\SUB& Documents that belong to this index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ACK\DC2\ETX\GS\v\DC3\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\GS\DC4\GS\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\GS !\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX#\STX\n\
+    \\n\
+    \\246\ETX\n\
+    \\EOT\EOT\NUL\STX\STX\DC2\ETX#\STX2\SUB\233\STX (optional) Symbols that are referenced from this index but are defined in\n\
+    \ an external package (a separate `Index` message). Leave this field empty\n\
+    \ if you assume the external package will get indexed separately. If the\n\
+    \ external package won't get indexed for some reason then you can use this\n\
+    \ field to provide hover documentation for those external symbols.\n\
+    \\"} IMPORTANT: When adding a new field to `Index` here, add a matching\n\
+    \ function in `IndexVisitor` and update `ParseStreaming`.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\ACK\DC2\ETX#\v\FS\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX#\GS-\n\
+    \\f\n\
+    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX#01\n\
+    \\n\
+    \\n\
+    \\STX\EOT\SOH\DC2\EOT(\NUL5\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\SOH\SOH\DC2\ETX(\b\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ACK\DC2\ETX*\STX\DC1\n\
+    \N\n\
+    \\EOT\EOT\SOH\STX\NUL\DC2\ETX*\STX\RS\SUBA Which version of this protocol was used to generate this index?\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\SOH\DC2\ETX*\DC2\EM\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\NUL\ETX\DC2\ETX*\FS\GS\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ACK\DC2\ETX,\STX\n\
+    \\n\
+    \C\n\
+    \\EOT\EOT\SOH\STX\SOH\DC2\ETX,\STX\EM\SUB6 Information about the tool that produced this index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\SOH\DC2\ETX,\v\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\SOH\ETX\DC2\ETX,\ETB\CAN\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ENQ\DC2\ETX0\STX\b\n\
+    \\162\SOH\n\
+    \\EOT\EOT\SOH\STX\STX\DC2\ETX0\STX\SUB\SUB\148\SOH URI-encoded absolute path to the root directory of this index. All\n\
+    \ documents in this index must appear in a subdirectory of this root\n\
+    \ directory.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\SOH\DC2\ETX0\t\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\STX\ETX\DC2\ETX0\CAN\EM\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ACK\DC2\ETX4\STX\SO\n\
+    \\224\SOH\n\
+    \\EOT\EOT\SOH\STX\ETX\DC2\ETX4\STX*\SUB\210\SOH Text encoding of the source files on disk that are referenced from\n\
+    \ `Document.relative_path`. This value is unrelated to the `Document.text`\n\
+    \ field, which is a Protobuf string and hence must be UTF-8 encoded.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\SOH\DC2\ETX4\SI%\n\
+    \\f\n\
+    \\ENQ\EOT\SOH\STX\ETX\ETX\DC2\ETX4()\n\
+    \\n\
+    \\n\
+    \\STX\ENQ\NUL\DC2\EOT7\NUL9\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\ENQ\NUL\SOH\DC2\ETX7\ENQ\DC4\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\SOH\DC2\ETX8\STX\FS\n\
+    \\v\n\
+    \\EOT\ENQ\NUL\STX\NUL\DC2\ETX8\STX!\n\
+    \\f\n\
+    \\ENQ\ENQ\NUL\STX\NUL\STX\DC2\ETX8\US \n\
+    \\n\
+    \\n\
+    \\STX\ENQ\SOH\DC2\EOT;\NUL?\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\ENQ\SOH\SOH\DC2\ETX;\ENQ\DC1\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\NUL\SOH\DC2\ETX<\STX\EM\n\
+    \\v\n\
+    \\EOT\ENQ\SOH\STX\NUL\DC2\ETX<\STX\RS\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\NUL\STX\DC2\ETX<\FS\GS\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\SOH\SOH\DC2\ETX=\STX\ACK\n\
+    \\v\n\
+    \\EOT\ENQ\SOH\STX\SOH\DC2\ETX=\STX\v\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\SOH\STX\DC2\ETX=\t\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\STX\SOH\DC2\ETX>\STX\a\n\
+    \\v\n\
+    \\EOT\ENQ\SOH\STX\STX\DC2\ETX>\STX\f\n\
+    \\f\n\
+    \\ENQ\ENQ\SOH\STX\STX\STX\DC2\ETX>\n\
+    \\v\n\
+    \\n\
+    \\n\
+    \\STX\EOT\STX\DC2\EOTA\NULH\SOH\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\STX\SOH\DC2\ETXA\b\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ENQ\DC2\ETXC\STX\b\n\
+    \<\n\
+    \\EOT\EOT\STX\STX\NUL\DC2\ETXC\STX\DC2\SUB/ Name of the indexer that produced this index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\SOH\DC2\ETXC\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\NUL\ETX\DC2\ETXC\DLE\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ENQ\DC2\ETXE\STX\b\n\
+    \?\n\
+    \\EOT\EOT\STX\STX\SOH\DC2\ETXE\STX\NAK\SUB2 Version of the indexer that produced this index.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\SOH\DC2\ETXE\t\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\SOH\ETX\DC2\ETXE\DC3\DC4\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\EOT\DC2\ETXG\STX\n\
+    \\n\
+    \L\n\
+    \\EOT\EOT\STX\STX\STX\DC2\ETXG\STX \SUB? Command-line arguments that were used to invoke this indexer.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\ENQ\DC2\ETXG\v\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\SOH\DC2\ETXG\DC2\ESC\n\
+    \\f\n\
+    \\ENQ\EOT\STX\STX\STX\ETX\DC2\ETXG\RS\US\n\
+    \H\n\
+    \\STX\EOT\ETX\DC2\EOTK\NULv\SOH\SUB< Document defines the metadata about a source file on disk.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\EOT\ETX\SOH\DC2\ETXK\b\DLE\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ENQ\DC2\ETXP\STX\b\n\
+    \\165\STX\n\
+    \\EOT\EOT\ETX\STX\NUL\DC2\ETXP\STX\SYN\SUB\151\STX The string ID for the programming language this file is written in.\n\
+    \ The `Language` enum contains the names of most common programming languages.\n\
+    \ This field is typed as a string to permit any programming language, including\n\
+    \ ones that are not specified by the `Language` enum.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\SOH\DC2\ETXP\t\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\NUL\ETX\DC2\ETXP\DC4\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ENQ\DC2\ETXZ\STX\b\n\
+    \\181\ETX\n\
+    \\EOT\EOT\ETX\STX\SOH\DC2\ETXZ\STX\ESC\SUB\167\ETX (Required) Unique path to the text document.\n\
+    \\n\
+    \ 1. The path must be relative to the directory supplied in the associated\n\
+    \    `Metadata.project_root`.\n\
+    \ 2. The path must not begin with a leading '/'.\n\
+    \ 3. The path must point to a regular file, not a symbolic link.\n\
+    \ 4. The path must use '/' as the separator, including on Windows.\n\
+    \ 5. The path must be canonical; it cannot include empty components ('//'),\n\
+    \    or '.' or '..'.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\SOH\DC2\ETXZ\t\SYN\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\SOH\ETX\DC2\ETXZ\EM\SUB\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\EOT\DC2\ETX\\\STX\n\
+    \\n\
+    \4\n\
+    \\EOT\EOT\ETX\STX\STX\DC2\ETX\\\STX&\SUB' Occurrences that appear in this file.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\ACK\DC2\ETX\\\v\NAK\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\SOH\DC2\ETX\\\SYN!\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\STX\ETX\DC2\ETX\\$%\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ETX\EOT\DC2\ETXb\STX\n\
+    \\n\
+    \\234\SOH\n\
+    \\EOT\EOT\ETX\STX\ETX\DC2\ETXb\STX)\SUB\220\SOH Symbols that are \"defined\" within this document.\n\
+    \\n\
+    \ This should include symbols which technically do not have any definition,\n\
+    \ but have a reference and are defined by some other symbol (see\n\
+    \ Relationship.is_definition).\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ETX\ACK\DC2\ETXb\v\FS\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ETX\SOH\DC2\ETXb\GS$\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ETX\ETX\DC2\ETXb'(\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\EOT\ENQ\DC2\ETXi\STX\b\n\
+    \\128\ETX\n\
+    \\EOT\EOT\ETX\STX\EOT\DC2\ETXi\STX\DC2\SUB\242\STX (optional) Text contents of this document. Indexers are not expected to\n\
+    \ include the text by default. It's preferable that clients read the text\n\
+    \ contents from the file system by resolving the absolute path from joining\n\
+    \ `Index.metadata.project_root` and `Document.relative_path`. This field\n\
+    \ can be useful for testing or when working with virtual/in-memory documents.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\EOT\SOH\DC2\ETXi\t\r\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\EOT\ETX\DC2\ETXi\DLE\DC1\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ENQ\ACK\DC2\ETXu\STX\DC2\n\
+    \\231\ETX\n\
+    \\EOT\EOT\ETX\STX\ENQ\DC2\ETXu\STX)\SUB\217\ETX Specifies the encoding used for source ranges in this Document.\n\
+    \\n\
+    \ Usually, this will match the type used to index the string type\n\
+    \ in the indexer's implementation language in O(1) time.\n\
+    \ - For an indexer implemented in JVM/.NET language or JavaScript/TypeScript,\n\
+    \   use UTF16CodeUnitOffsetFromLineStart.\n\
+    \ - For an indexer implemented in Python,\n\
+    \   use UTF32CodeUnitOffsetFromLineStart.\n\
+    \ - For an indexer implemented in Go, Rust or C++,\n\
+    \   use UTF8ByteOffsetFromLineStart.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ENQ\SOH\DC2\ETXu\DC3$\n\
+    \\f\n\
+    \\ENQ\EOT\ETX\STX\ENQ\ETX\DC2\ETXu'(\n\
+    \Q\n\
+    \\STX\ENQ\STX\DC2\ENQy\NUL\145\SOH\SOH\SUBD Encoding used to interpret the 'character' value in source ranges.\n\
+    \\n\
+    \\n\
+    \\n\
+    \\ETX\ENQ\STX\SOH\DC2\ETXy\ENQ\NAK\n\
+    \\f\n\
+    \\ENQ\ENQ\STX\STX\NUL\SOH\DC2\ETX|\STX\GS\n\
+    \\147\SOH\n\
+    \\EOT\ENQ\STX\STX\NUL\DC2\ETX|\STX\"\SUB\133\SOH Default value. This value should not be used by new SCIP indexers\n\
+    \ so that a consumer can process the SCIP index without ambiguity.\n\
+    \\n\
+    \\f\n\
+    \\ENQ\ENQ\STX\STX\NUL\STX\DC2\ETX| !\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\SOH\SOH\DC2\EOT\131\SOH\STX!\n\
+    \\247\SOH\n\
+    \\EOT\ENQ\STX\STX\SOH\DC2\EOT\131\SOH\STX&\SUB\232\SOH The 'character' value is interpreted as an offset in terms\n\
+    \ of UTF-8 code units (i.e. bytes).\n\
+    \\n\
+    \ Example: For the string \"\240\159\154\128 Woo\" in UTF-8, the bytes are\n\
+    \ [240, 159, 154, 128, 32, 87, 111, 111], so the offset for 'W'\n\
+    \ would be 5.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\SOH\STX\DC2\EOT\131\SOH$%\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\STX\SOH\DC2\EOT\138\SOH\STX\"\n\
+    \\130\STX\n\
+    \\EOT\ENQ\STX\STX\STX\DC2\EOT\138\SOH\STX'\SUB\243\SOH The 'character' value is interpreted as an offset in terms\n\
+    \ of UTF-16 code units (each is 2 bytes).\n\
+    \\n\
+    \ Example: For the string \"\240\159\154\128 Woo\", the UTF-16 code units are\n\
+    \ ['\\ud83d', '\\ude80', ' ', 'W', 'o', 'o'], so the offset for 'W'\n\
+    \ would be 3.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\STX\STX\DC2\EOT\138\SOH%&\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\ETX\SOH\DC2\EOT\144\SOH\STX\"\n\
+    \\245\SOH\n\
+    \\EOT\ENQ\STX\STX\ETX\DC2\EOT\144\SOH\STX'\SUB\230\SOH The 'character' value is interpreted as an offset in terms\n\
+    \ of UTF-32 code units (each is 4 bytes).\n\
+    \\n\
+    \ Example: For the string \"\240\159\154\128 Woo\", the UTF-32 code units are\n\
+    \ ['\240\159\154\128', ' ', 'W', 'o', 'o'], so the offset for 'W' would be 2.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\STX\STX\ETX\STX\DC2\EOT\144\SOH%&\n\
+    \\204\DC2\n\
+    \\STX\EOT\EOT\DC2\ACK\189\SOH\NUL\193\SOH\SOH\SUB\189\DC2 Symbol is similar to a URI, it identifies a class, method, or a local\n\
+    \ variable. `SymbolInformation` contains rich metadata about symbols such as\n\
+    \ the docstring.\n\
+    \\n\
+    \ Symbol has a standardized string representation, which can be used\n\
+    \ interchangeably with `Symbol`. The syntax for Symbol is the following:\n\
+    \ ```\n\
+    \ # (<x>)+ stands for one or more repetitions of <x>\n\
+    \ # (<x>)? stands for zero or one occurrence of <x>\n\
+    \ <symbol>               ::= <scheme> ' ' <package> ' ' (<descriptor>)+ | 'local ' <local-id>\n\
+    \ <package>              ::= <manager> ' ' <package-name> ' ' <version>\n\
+    \ <scheme>               ::= any UTF-8, escape spaces with double space. Must not be empty nor start with 'local'\n\
+    \ <manager>              ::= any UTF-8, escape spaces with double space. Use the placeholder '.' to indicate an empty value\n\
+    \ <package-name>         ::= same as above\n\
+    \ <version>              ::= same as above\n\
+    \ <descriptor>           ::= <namespace> | <type> | <term> | <method> | <type-parameter> | <parameter> | <meta> | <macro>\n\
+    \ <namespace>            ::= <name> '/'\n\
+    \ <type>                 ::= <name> '#'\n\
+    \ <term>                 ::= <name> '.'\n\
+    \ <meta>                 ::= <name> ':'\n\
+    \ <macro>                ::= <name> '!'\n\
+    \ <method>               ::= <name> '(' (<method-disambiguator>)? ').'\n\
+    \ <type-parameter>       ::= '[' <name> ']'\n\
+    \ <parameter>            ::= '(' <name> ')'\n\
+    \ <name>                 ::= <identifier>\n\
+    \ <method-disambiguator> ::= <simple-identifier>\n\
+    \ <identifier>           ::= <simple-identifier> | <escaped-identifier>\n\
+    \ <simple-identifier>    ::= (<identifier-character>)+\n\
+    \ <identifier-character> ::= '_' | '+' | '-' | '$' | ASCII letter or digit\n\
+    \ <escaped-identifier>   ::= '`' (<escaped-character>)+ '`', must contain at least one non-<identifier-character>\n\
+    \ <escaped-characters>   ::= any UTF-8, escape backticks with double backtick.\n\
+    \ <local-id>             ::= <simple-identifier>\n\
+    \ ```\n\
+    \\n\
+    \ The list of descriptors for a symbol should together form a fully\n\
+    \ qualified name for the symbol. That is, it should serve as a unique\n\
+    \ identifier across the package. Typically, it will include one descriptor\n\
+    \ for every node in the AST (along the ancestry path) between the root of\n\
+    \ the file and the node corresponding to the symbol.\n\
+    \\n\
+    \ Local symbols MUST only be used for entities which are local to a Document,\n\
+    \ and cannot be accessed from outside the Document.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\EOT\SOH\DC2\EOT\189\SOH\b\SO\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\NUL\ENQ\DC2\EOT\190\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\EOT\STX\NUL\DC2\EOT\190\SOH\STX\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\NUL\SOH\DC2\EOT\190\SOH\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\NUL\ETX\DC2\EOT\190\SOH\DC2\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\SOH\ACK\DC2\EOT\191\SOH\STX\t\n\
+    \\f\n\
+    \\EOT\EOT\EOT\STX\SOH\DC2\EOT\191\SOH\STX\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\SOH\SOH\DC2\EOT\191\SOH\n\
+    \\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\SOH\ETX\DC2\EOT\191\SOH\DC4\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\STX\EOT\DC2\EOT\192\SOH\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\EOT\EOT\STX\STX\DC2\EOT\192\SOH\STX&\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\STX\ACK\DC2\EOT\192\SOH\v\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\STX\SOH\DC2\EOT\192\SOH\SYN!\n\
+    \\r\n\
+    \\ENQ\EOT\EOT\STX\STX\ETX\DC2\EOT\192\SOH$%\n\
+    \q\n\
+    \\STX\EOT\ENQ\DC2\ACK\198\SOH\NUL\202\SOH\SOH\SUBc Unit of packaging and distribution.\n\
+    \\n\
+    \ NOTE: This corresponds to a module in Go and JVM languages.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\ENQ\SOH\DC2\EOT\198\SOH\b\SI\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ENQ\DC2\EOT\199\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\ENQ\STX\NUL\DC2\EOT\199\SOH\STX\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\NUL\SOH\DC2\EOT\199\SOH\t\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\NUL\ETX\DC2\EOT\199\SOH\DC3\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ENQ\DC2\EOT\200\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\ENQ\STX\SOH\DC2\EOT\200\SOH\STX\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\SOH\SOH\DC2\EOT\200\SOH\t\r\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\SOH\ETX\DC2\EOT\200\SOH\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\STX\ENQ\DC2\EOT\201\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\ENQ\STX\STX\DC2\EOT\201\SOH\STX\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\STX\SOH\DC2\EOT\201\SOH\t\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\ENQ\STX\STX\ETX\DC2\EOT\201\SOH\DC3\DC4\n\
+    \\f\n\
+    \\STX\EOT\ACK\DC2\ACK\204\SOH\NUL\229\SOH\SOH\n\
+    \\v\n\
+    \\ETX\EOT\ACK\SOH\DC2\EOT\204\SOH\b\DC2\n\
+    \\SO\n\
+    \\EOT\EOT\ACK\EOT\NUL\DC2\ACK\205\SOH\STX\223\SOH\ETX\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\EOT\NUL\SOH\DC2\EOT\205\SOH\a\r\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\EOT\NUL\ETX\DC2\EOT\206\SOH\EOT\RS\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\ETX\STX\DC2\EOT\206\SOH\EOT\RS\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\NUL\SOH\DC2\EOT\207\SOH\EOT\NAK\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\NUL\DC2\EOT\207\SOH\EOT\SUB\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\NUL\STX\DC2\EOT\207\SOH\CAN\EM\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\SOH\SOH\DC2\EOT\211\SOH\EOT\r\n\
+    \}\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\SOH\DC2\EOT\211\SOH\EOT\DC2\SUBm Unit of code abstraction and/or namespacing.\n\
+    \\n\
+    \ NOTE: This corresponds to a package in Go and JVM languages.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\SOH\STX\DC2\EOT\211\SOH\DLE\DC1\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\STX\SOH\DC2\EOT\213\SOH\EOT\v\n\
+    \(\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\STX\DC2\EOT\213\SOH\EOT$\SUB\CAN Use Namespace instead.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\STX\STX\DC2\EOT\213\SOH\SO\SI\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\STX\ETX\DC2\EOT\213\SOH\DLE#\n\
+    \\DLE\n\
+    \\b\EOT\ACK\EOT\NUL\STX\STX\ETX\SOH\DC2\EOT\213\SOH\DC1\"\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ETX\SOH\DC2\EOT\214\SOH\EOT\b\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\ETX\DC2\EOT\214\SOH\EOT\r\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ETX\STX\DC2\EOT\214\SOH\v\f\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\EOT\SOH\DC2\EOT\215\SOH\EOT\b\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\EOT\DC2\EOT\215\SOH\EOT\r\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\EOT\STX\DC2\EOT\215\SOH\v\f\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ENQ\SOH\DC2\EOT\216\SOH\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\ENQ\DC2\EOT\216\SOH\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ENQ\STX\DC2\EOT\216\SOH\r\SO\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ACK\SOH\DC2\EOT\217\SOH\EOT\DC1\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\ACK\DC2\EOT\217\SOH\EOT\SYN\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\ACK\STX\DC2\EOT\217\SOH\DC4\NAK\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\a\SOH\DC2\EOT\218\SOH\EOT\r\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\a\DC2\EOT\218\SOH\EOT\DC2\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\a\STX\DC2\EOT\218\SOH\DLE\DC1\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\b\SOH\DC2\EOT\220\SOH\EOT\b\n\
+    \.\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\b\DC2\EOT\220\SOH\EOT\r\SUB\RS Can be used for any purpose.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\b\STX\DC2\EOT\220\SOH\v\f\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\t\SOH\DC2\EOT\221\SOH\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\t\DC2\EOT\221\SOH\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\t\STX\DC2\EOT\221\SOH\f\r\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\n\
+    \\SOH\DC2\EOT\222\SOH\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\ACK\EOT\NUL\STX\n\
+    \\DC2\EOT\222\SOH\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\ACK\EOT\NUL\STX\n\
+    \\STX\DC2\EOT\222\SOH\f\r\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\NUL\ENQ\DC2\EOT\224\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\ACK\STX\NUL\DC2\EOT\224\SOH\STX\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\NUL\SOH\DC2\EOT\224\SOH\t\r\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\NUL\ETX\DC2\EOT\224\SOH\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\SOH\ENQ\DC2\EOT\225\SOH\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\ACK\STX\SOH\DC2\EOT\225\SOH\STX\ESC\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\SOH\SOH\DC2\EOT\225\SOH\t\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\SOH\ETX\DC2\EOT\225\SOH\EM\SUB\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\STX\ACK\DC2\EOT\226\SOH\STX\b\n\
+    \\130\SOH\n\
+    \\EOT\EOT\ACK\STX\STX\DC2\EOT\226\SOH\STX\DC4\"t NOTE: If you add new fields here, make sure to update the prepareSlot()\n\
+    \ function responsible for parsing symbols.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\STX\SOH\DC2\EOT\226\SOH\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\ACK\STX\STX\ETX\DC2\EOT\226\SOH\DC2\DC3\n\
+    \\161\STX\n\
+    \\STX\EOT\a\DC2\ACK\235\SOH\NUL\248\SOH\SOH\SUB\146\STX Signature represents the signature of a symbol as it's displayed in API\n\
+    \ documentation or hover tooltips. It uses a subset of Document's fields with\n\
+    \ the same field numbers for wire compatibility with older indexes that encoded\n\
+    \ signatures using the Document message type.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\a\SOH\DC2\EOT\235\SOH\b\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\NUL\ENQ\DC2\EOT\237\SOH\STX\b\n\
+    \K\n\
+    \\EOT\EOT\a\STX\NUL\DC2\EOT\237\SOH\STX\SYN\SUB= The language of the signature, e.g. \"java\", \"go\", \"python\".\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\NUL\SOH\DC2\EOT\237\SOH\t\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\NUL\ETX\DC2\EOT\237\SOH\DC4\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\SOH\ENQ\DC2\EOT\239\SOH\STX\b\n\
+    \Q\n\
+    \\EOT\EOT\a\STX\SOH\DC2\EOT\239\SOH\STX\DC2\SUBC The text content of the signature, e.g. \"void add(int a, int b)\".\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\SOH\SOH\DC2\EOT\239\SOH\t\r\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\SOH\ETX\DC2\EOT\239\SOH\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\STX\EOT\DC2\EOT\243\SOH\STX\n\
+    \\n\
+    \\187\SOH\n\
+    \\EOT\EOT\a\STX\STX\DC2\EOT\243\SOH\STX&\SUB\172\SOH (optional) Occurrences within the signature text that reference other\n\
+    \ symbols, enabling hyperlinking of types in the signature. Ranges are\n\
+    \ relative to the `text` field.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\STX\ACK\DC2\EOT\243\SOH\v\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\STX\SOH\DC2\EOT\243\SOH\SYN!\n\
+    \\r\n\
+    \\ENQ\EOT\a\STX\STX\ETX\DC2\EOT\243\SOH$%\n\
+    \\151\SOH\n\
+    \\ETX\EOT\a\t\DC2\EOT\247\SOH\STX\DC3\SUB\137\SOH Reserved field numbers from the Document message to prevent accidental\n\
+    \ reuse, which would break wire compatibility with older indexes.\n\
+    \\n\
+    \\f\n\
+    \\EOT\EOT\a\t\NUL\DC2\EOT\247\SOH\v\f\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\NUL\SOH\DC2\EOT\247\SOH\v\f\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\NUL\STX\DC2\EOT\247\SOH\v\f\n\
+    \\f\n\
+    \\EOT\EOT\a\t\SOH\DC2\EOT\247\SOH\SO\SI\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\SOH\SOH\DC2\EOT\247\SOH\SO\SI\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\SOH\STX\DC2\EOT\247\SOH\SO\SI\n\
+    \\f\n\
+    \\EOT\EOT\a\t\STX\DC2\EOT\247\SOH\DC1\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\STX\SOH\DC2\EOT\247\SOH\DC1\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\a\t\STX\STX\DC2\EOT\247\SOH\DC1\DC2\n\
+    \\131\SOH\n\
+    \\STX\EOT\b\DC2\ACK\252\SOH\NUL\206\ETX\SOH\SUBu SymbolInformation defines metadata about a symbol, such as the symbol's\n\
+    \ docstring or what package it's defined it.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\b\SOH\DC2\EOT\252\SOH\b\EM\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\NUL\ENQ\DC2\EOT\255\SOH\STX\b\n\
+    \\160\SOH\n\
+    \\EOT\EOT\b\STX\NUL\DC2\EOT\255\SOH\STX\DC4\SUB\145\SOH Identifier of this symbol, which can be referenced from `Occurence.symbol`.\n\
+    \ The string must be formatted according to the grammar in `Symbol`.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\NUL\SOH\DC2\EOT\255\SOH\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\NUL\ETX\DC2\EOT\255\SOH\DC2\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\SOH\EOT\DC2\EOT\134\STX\STX\n\
+    \\n\
+    \\180\ETX\n\
+    \\EOT\EOT\b\STX\SOH\DC2\EOT\134\STX\STX$\SUB\165\ETX (optional, but strongly recommended) The markdown-formatted documentation\n\
+    \ for this symbol. Use `SymbolInformation.signature_documentation` to\n\
+    \ document the method/class/type signature of this symbol.\n\
+    \ Due to historical reasons, indexers may include signature documentation in\n\
+    \ this field by rendering markdown code blocks. New indexers should only\n\
+    \ include non-code documentation in this field, for example docstrings.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\SOH\ENQ\DC2\EOT\134\STX\v\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\SOH\SOH\DC2\EOT\134\STX\DC2\US\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\SOH\ETX\DC2\EOT\134\STX\"#\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\STX\EOT\DC2\EOT\136\STX\STX\n\
+    \\n\
+    \^\n\
+    \\EOT\EOT\b\STX\STX\DC2\EOT\136\STX\STX*\SUBP (optional) Relationships to other symbols (e.g., implements, type definition).\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\STX\ACK\DC2\EOT\136\STX\v\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\STX\SOH\DC2\EOT\136\STX\CAN%\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\STX\ETX\DC2\EOT\136\STX()\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ETX\ACK\DC2\EOT\140\STX\STX\ACK\n\
+    \\164\SOH\n\
+    \\EOT\EOT\b\STX\ETX\DC2\EOT\140\STX\STX\DLE\SUB\149\SOH The kind of this symbol. Use this field instead of\n\
+    \ `SymbolDescriptor.Suffix` to determine whether something is, for example, a\n\
+    \ class or a method.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ETX\SOH\DC2\EOT\140\STX\a\v\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ETX\ETX\DC2\EOT\140\STX\SO\SI\n\
+    \\245\ENQ\n\
+    \\EOT\EOT\b\EOT\NUL\DC2\ACK\155\STX\STX\170\ETX\ETX\SUB\228\ENQ (optional) Kind represents the fine-grained category of a symbol, suitable for presenting\n\
+    \ information about the symbol's meaning in the language.\n\
+    \\n\
+    \ For example:\n\
+    \ - A Java method would have the kind `Method` while a Go function would\n\
+    \   have the kind `Function`, even if the symbols for these use the same\n\
+    \   syntax for the descriptor `SymbolDescriptor.Suffix.Method`.\n\
+    \ - A Go struct has the symbol kind `Struct` while a Java class has\n\
+    \   the symbol kind `Class` even if they both have the same descriptor:\n\
+    \   `SymbolDescriptor.Suffix.Type`.\n\
+    \\n\
+    \ Since Kind is more fine-grained than Suffix:\n\
+    \ - If two symbols have the same Kind, they should share the same Suffix.\n\
+    \ - If two symbols have different Suffixes, they should have different Kinds.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\EOT\NUL\SOH\DC2\EOT\155\STX\a\v\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\NUL\SOH\DC2\EOT\156\STX\EOT\DC3\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\NUL\DC2\EOT\156\STX\EOT\CAN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\NUL\STX\DC2\EOT\156\STX\SYN\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SOH\SOH\DC2\EOT\158\STX\EOT\DC2\n\
+    \R\n\
+    \\ACK\EOT\b\EOT\NUL\STX\SOH\DC2\EOT\158\STX\EOT\CAN\SUBB A method which may or may not have a body. For Java, Kotlin etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SOH\STX\DC2\EOT\158\STX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\STX\SOH\DC2\EOT\160\STX\EOT\f\n\
+    \*\n\
+    \\ACK\EOT\b\EOT\NUL\STX\STX\DC2\EOT\160\STX\EOT\DC2\SUB\SUB For Ruby's attr_accessor\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\STX\STX\DC2\EOT\160\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ETX\SOH\DC2\EOT\161\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\ETX\DC2\EOT\161\STX\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ETX\STX\DC2\EOT\161\STX\f\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\EOT\SOH\DC2\EOT\163\STX\EOT\r\n\
+    \\ESC\n\
+    \\ACK\EOT\b\EOT\NUL\STX\EOT\DC2\EOT\163\STX\EOT\DC2\SUB\v For Alloy\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\EOT\STX\DC2\EOT\163\STX\DLE\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ENQ\SOH\DC2\EOT\164\STX\EOT\DC2\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\ENQ\DC2\EOT\164\STX\EOT\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ENQ\STX\DC2\EOT\164\STX\NAK\SYN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ACK\SOH\DC2\EOT\166\STX\EOT\r\n\
+    \\EM\n\
+    \\ACK\EOT\b\EOT\NUL\STX\ACK\DC2\EOT\166\STX\EOT\DC2\SUB\t For C++\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ACK\STX\DC2\EOT\166\STX\DLE\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\a\SOH\DC2\EOT\168\STX\EOT\t\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX\a\DC2\EOT\168\STX\EOT\SO\SUB\n\
+    \ For Lean\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\a\STX\DC2\EOT\168\STX\f\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\b\SOH\DC2\EOT\169\STX\EOT\v\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\b\DC2\EOT\169\STX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\b\STX\DC2\EOT\169\STX\SO\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\t\SOH\DC2\EOT\170\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\t\DC2\EOT\170\STX\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\t\STX\DC2\EOT\170\STX\f\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\n\
+    \\SOH\DC2\EOT\172\STX\EOT\v\n\
+    \\EM\n\
+    \\ACK\EOT\b\EOT\NUL\STX\n\
+    \\DC2\EOT\172\STX\EOT\DC1\SUB\t For C++\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\n\
+    \\STX\DC2\EOT\172\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\v\SOH\DC2\EOT\173\STX\EOT\f\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\v\DC2\EOT\173\STX\EOT\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\v\STX\DC2\EOT\173\STX\SI\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\f\SOH\DC2\EOT\174\STX\EOT\SI\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\f\DC2\EOT\174\STX\EOT\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\f\STX\DC2\EOT\174\STX\DC2\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\r\SOH\DC2\EOT\176\STX\EOT\f\n\
+    \\RS\n\
+    \\ACK\EOT\b\EOT\NUL\STX\r\DC2\EOT\176\STX\EOT\DC2\SUB\SO For Solidity\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\r\STX\DC2\EOT\176\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SO\SOH\DC2\EOT\178\STX\EOT\SO\n\
+    \\GS\n\
+    \\ACK\EOT\b\EOT\NUL\STX\SO\DC2\EOT\178\STX\EOT\DC4\SUB\r For Haskell\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SO\STX\DC2\EOT\178\STX\DC1\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SI\SOH\DC2\EOT\180\STX\EOT\f\n\
+    \\US\n\
+    \\ACK\EOT\b\EOT\NUL\STX\SI\DC2\EOT\180\STX\EOT\DC2\SUB\SI For C# and F#\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SI\STX\DC2\EOT\180\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DLE\SOH\DC2\EOT\181\STX\EOT\b\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\DLE\DC2\EOT\181\STX\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DLE\STX\DC2\EOT\181\STX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC1\SOH\DC2\EOT\182\STX\EOT\SO\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\DC1\DC2\EOT\182\STX\EOT\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC1\STX\DC2\EOT\182\STX\DC1\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC2\SOH\DC2\EOT\183\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\DC2\DC2\EOT\183\STX\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC2\STX\DC2\EOT\183\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC3\SOH\DC2\EOT\184\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\DC3\DC2\EOT\184\STX\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC3\STX\DC2\EOT\184\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC4\SOH\DC2\EOT\186\STX\EOT\r\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX\DC4\DC2\EOT\186\STX\EOT\DC3\SUB\n\
+    \ For Dart\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\DC4\STX\DC2\EOT\186\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\NAK\SOH\DC2\EOT\188\STX\EOT\b\n\
+    \\ESC\n\
+    \\ACK\EOT\b\EOT\NUL\STX\NAK\DC2\EOT\188\STX\EOT\SO\SUB\v For Alloy\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\NAK\STX\DC2\EOT\188\STX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SYN\SOH\DC2\EOT\189\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\SYN\DC2\EOT\189\STX\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SYN\STX\DC2\EOT\189\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ETB\SOH\DC2\EOT\190\STX\EOT\b\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\ETB\DC2\EOT\190\STX\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ETB\STX\DC2\EOT\190\STX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\CAN\SOH\DC2\EOT\191\STX\EOT\f\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\CAN\DC2\EOT\191\STX\EOT\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\CAN\STX\DC2\EOT\191\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\EM\SOH\DC2\EOT\193\STX\EOT\n\
+    \\n\
+    \;\n\
+    \\ACK\EOT\b\EOT\NUL\STX\EM\DC2\EOT\193\STX\EOT\DLE\SUB+ For 'get' in Swift, 'attr_reader' in Ruby\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\EM\STX\DC2\EOT\193\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SUB\SOH\DC2\EOT\195\STX\EOT\v\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX\SUB\DC2\EOT\195\STX\EOT\DC1\SUB\n\
+    \ For Raku\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\SUB\STX\DC2\EOT\195\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ESC\SOH\DC2\EOT\197\STX\EOT\f\n\
+    \)\n\
+    \\ACK\EOT\b\EOT\NUL\STX\ESC\DC2\EOT\197\STX\EOT\DC2\SUB\EM For Purescript and Lean\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\ESC\STX\DC2\EOT\197\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\FS\SOH\DC2\EOT\198\STX\EOT\r\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\FS\DC2\EOT\198\STX\EOT\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\FS\STX\DC2\EOT\198\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\GS\SOH\DC2\EOT\199\STX\EOT\a\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\GS\DC2\EOT\199\STX\EOT\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\GS\STX\DC2\EOT\199\STX\n\
+    \\f\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\RS\SOH\DC2\EOT\201\STX\EOT\b\n\
+    \\FS\n\
+    \\ACK\EOT\b\EOT\NUL\STX\RS\DC2\EOT\201\STX\EOT\SO\SUB\f For Racket\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\RS\STX\DC2\EOT\201\STX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\US\SOH\DC2\EOT\203\STX\EOT\t\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX\US\DC2\EOT\203\STX\EOT\SI\SUB\n\
+    \ For Lean\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\US\STX\DC2\EOT\203\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX \SOH\DC2\EOT\205\STX\EOT\v\n\
+    \\RS\n\
+    \\ACK\EOT\b\EOT\NUL\STX \DC2\EOT\205\STX\EOT\DC1\SUB\SO For solidity\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX \STX\DC2\EOT\205\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX!\SOH\DC2\EOT\206\STX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX!\DC2\EOT\206\STX\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX!\STX\DC2\EOT\206\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\"\SOH\DC2\EOT\207\STX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX\"\DC2\EOT\207\STX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX\"\STX\DC2\EOT\207\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX#\SOH\DC2\EOT\209\STX\EOT\SI\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX#\DC2\EOT\209\STX\EOT\NAK\SUB\n\
+    \ For Ruby\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX#\STX\DC2\EOT\209\STX\DC2\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX$\SOH\DC2\EOT\212\STX\EOT\DC2\n\
+    \\148\SOH\n\
+    \\ACK\EOT\b\EOT\NUL\STX$\DC2\EOT\212\STX\EOT\CAN\SUB\131\SOH Analogous to 'ThisParameter' and 'SelfParameter', but for languages\n\
+    \ like Go where the receiver doesn't have a conventional name.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX$\STX\DC2\EOT\212\STX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX%\SOH\DC2\EOT\214\STX\EOT\ETB\n\
+    \8\n\
+    \\ACK\EOT\b\EOT\NUL\STX%\DC2\EOT\214\STX\EOT\GS\SUB( Analogous to 'AbstractMethod', for Go.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX%\STX\DC2\EOT\214\STX\SUB\FS\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX&\SOH\DC2\EOT\216\STX\EOT\v\n\
+    \\RS\n\
+    \\ACK\EOT\b\EOT\NUL\STX&\DC2\EOT\216\STX\EOT\DC1\SUB\SO For Protobuf\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX&\STX\DC2\EOT\216\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX'\SOH\DC2\EOT\218\STX\EOT\t\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX'\DC2\EOT\218\STX\EOT\SI\SUB\n\
+    \ For Dart\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX'\STX\DC2\EOT\218\STX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX(\SOH\DC2\EOT\220\STX\EOT\f\n\
+    \\RS\n\
+    \\ACK\EOT\b\EOT\NUL\STX(\DC2\EOT\220\STX\EOT\DC2\SUB\SO For Solidity\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX(\STX\DC2\EOT\220\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX)\SOH\DC2\EOT\221\STX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX)\DC2\EOT\221\STX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX)\STX\DC2\EOT\221\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX*\SOH\DC2\EOT\222\STX\EOT\r\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX*\DC2\EOT\222\STX\EOT\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX*\STX\DC2\EOT\222\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX+\SOH\DC2\EOT\223\STX\EOT\b\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX+\DC2\EOT\223\STX\EOT\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX+\STX\DC2\EOT\223\STX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX,\SOH\DC2\EOT\224\STX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX,\DC2\EOT\224\STX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX,\STX\DC2\EOT\224\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX-\SOH\DC2\EOT\225\STX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX-\DC2\EOT\225\STX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX-\STX\DC2\EOT\225\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX.\SOH\DC2\EOT\226\STX\EOT\f\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX.\DC2\EOT\226\STX\EOT\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX.\STX\DC2\EOT\226\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX/\SOH\DC2\EOT\227\STX\EOT\v\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX/\DC2\EOT\227\STX\EOT\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX/\STX\DC2\EOT\227\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX0\SOH\DC2\EOT\228\STX\EOT\DC1\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX0\DC2\EOT\228\STX\EOT\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX0\STX\DC2\EOT\228\STX\DC4\SYN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX1\SOH\DC2\EOT\229\STX\EOT\r\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX1\DC2\EOT\229\STX\EOT\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX1\STX\DC2\EOT\229\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX2\SOH\DC2\EOT\230\STX\EOT\DC2\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX2\DC2\EOT\230\STX\EOT\CAN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX2\STX\DC2\EOT\230\STX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX3\SOH\DC2\EOT\232\STX\EOT\v\n\
+    \/\n\
+    \\ACK\EOT\b\EOT\NUL\STX3\DC2\EOT\232\STX\EOT\DC1\SUB\US For Haskell's PatternSynonyms\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX3\STX\DC2\EOT\232\STX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX4\SOH\DC2\EOT\234\STX\EOT\r\n\
+    \\ESC\n\
+    \\ACK\EOT\b\EOT\NUL\STX4\DC2\EOT\234\STX\EOT\DC3\SUB\v For Alloy\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX4\STX\DC2\EOT\234\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX5\SOH\DC2\EOT\235\STX\EOT\f\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STX5\DC2\EOT\235\STX\EOT\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX5\STX\DC2\EOT\235\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX6\SOH\DC2\EOT\237\STX\EOT\f\n\
+    \Q\n\
+    \\ACK\EOT\b\EOT\NUL\STX6\DC2\EOT\237\STX\EOT\DC2\SUBA Analogous to 'Trait' and 'TypeClass', for Swift and Objective-C\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX6\STX\DC2\EOT\237\STX\SI\DC1\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX7\SOH\DC2\EOT\239\STX\EOT\DC2\n\
+    \K\n\
+    \\ACK\EOT\b\EOT\NUL\STX7\DC2\EOT\239\STX\EOT\CAN\SUB; Analogous to 'AbstractMethod', for Swift and Objective-C.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX7\STX\DC2\EOT\239\STX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX8\SOH\DC2\EOT\241\STX\EOT\NAK\n\
+    \9\n\
+    \\ACK\EOT\b\EOT\NUL\STX8\DC2\EOT\241\STX\EOT\ESC\SUB) Analogous to 'AbstractMethod', for C++.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX8\STX\DC2\EOT\241\STX\CAN\SUB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX9\SOH\DC2\EOT\243\STX\EOT\SI\n\
+    \\GS\n\
+    \\ACK\EOT\b\EOT\NUL\STX9\DC2\EOT\243\STX\EOT\NAK\SUB\r For Haskell\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX9\STX\DC2\EOT\243\STX\DC2\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX:\SOH\DC2\EOT\245\STX\EOT\DC1\n\
+    \4\n\
+    \\ACK\EOT\b\EOT\NUL\STX:\DC2\EOT\245\STX\EOT\ETB\SUB$ 'self' in Python, Rust, Swift etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX:\STX\DC2\EOT\245\STX\DC4\SYN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX;\SOH\DC2\EOT\247\STX\EOT\n\
+    \\n\
+    \;\n\
+    \\ACK\EOT\b\EOT\NUL\STX;\DC2\EOT\247\STX\EOT\DLE\SUB+ For 'set' in Swift, 'attr_writer' in Ruby\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX;\STX\DC2\EOT\247\STX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX<\SOH\DC2\EOT\249\STX\EOT\r\n\
+    \3\n\
+    \\ACK\EOT\b\EOT\NUL\STX<\DC2\EOT\249\STX\EOT\DC3\SUB# For Alloy, analogous to 'Struct'.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX<\STX\DC2\EOT\249\STX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX=\SOH\DC2\EOT\251\STX\EOT\DC2\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STX=\DC2\EOT\251\STX\EOT\CAN\SUB\n\
+    \ For Ruby\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX=\STX\DC2\EOT\251\STX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX>\SOH\DC2\EOT\253\STX\EOT\DC3\n\
+    \8\n\
+    \\ACK\EOT\b\EOT\NUL\STX>\DC2\EOT\253\STX\EOT\EM\SUB( Analogous to 'StaticMethod', for Ruby.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX>\STX\DC2\EOT\253\STX\SYN\CAN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX?\SOH\DC2\EOT\255\STX\EOT\DC4\n\
+    \5\n\
+    \\ACK\EOT\b\EOT\NUL\STX?\DC2\EOT\255\STX\EOT\SUB\SUB% Analogous to 'StaticField', for C++\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX?\STX\DC2\EOT\255\STX\ETB\EM\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX@\SOH\DC2\EOT\129\ETX\EOT\SI\n\
+    \\CAN\n\
+    \\ACK\EOT\b\EOT\NUL\STX@\DC2\EOT\129\ETX\EOT\NAK\SUB\b For C#\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STX@\STX\DC2\EOT\129\ETX\DC2\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXA\SOH\DC2\EOT\131\ETX\EOT\SI\n\
+    \\CAN\n\
+    \\ACK\EOT\b\EOT\NUL\STXA\DC2\EOT\131\ETX\EOT\NAK\SUB\b For C#\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXA\STX\DC2\EOT\131\ETX\DC2\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXB\SOH\DC2\EOT\133\ETX\EOT\DLE\n\
+    \(\n\
+    \\ACK\EOT\b\EOT\NUL\STXB\DC2\EOT\133\ETX\EOT\SYN\SUB\CAN For Java, C#, C++ etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXB\STX\DC2\EOT\133\ETX\DC3\NAK\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXC\SOH\DC2\EOT\135\ETX\EOT\DC2\n\
+    \)\n\
+    \\ACK\EOT\b\EOT\NUL\STXC\DC2\EOT\135\ETX\EOT\CAN\SUB\EM For C#, TypeScript etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXC\STX\DC2\EOT\135\ETX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXD\SOH\DC2\EOT\137\ETX\EOT\DC2\n\
+    \\FS\n\
+    \\ACK\EOT\b\EOT\NUL\STXD\DC2\EOT\137\ETX\EOT\CAN\SUB\f For C, C++\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXD\STX\DC2\EOT\137\ETX\NAK\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXE\SOH\DC2\EOT\138\ETX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STXE\DC2\EOT\138\ETX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXE\STX\DC2\EOT\138\ETX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXF\SOH\DC2\EOT\139\ETX\EOT\n\
+    \\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STXF\DC2\EOT\139\ETX\EOT\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXF\STX\DC2\EOT\139\ETX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXG\SOH\DC2\EOT\141\ETX\EOT\r\n\
+    \\ESC\n\
+    \\ACK\EOT\b\EOT\NUL\STXG\DC2\EOT\141\ETX\EOT\DC3\SUB\v For Swift\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXG\STX\DC2\EOT\141\ETX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXH\SOH\DC2\EOT\143\ETX\EOT\n\
+    \\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STXH\DC2\EOT\143\ETX\EOT\DLE\SUB\n\
+    \ For Lean\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXH\STX\DC2\EOT\143\ETX\r\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXI\SOH\DC2\EOT\145\ETX\EOT\v\n\
+    \\SUB\n\
+    \\ACK\EOT\b\EOT\NUL\STXI\DC2\EOT\145\ETX\EOT\DC1\SUB\n\
+    \ For Lean\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXI\STX\DC2\EOT\145\ETX\SO\DLE\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXJ\SOH\DC2\EOT\148\ETX\EOT\DC1\n\
+    \U\n\
+    \\ACK\EOT\b\EOT\NUL\STXJ\DC2\EOT\148\ETX\EOT\ETB\SUBE Method receiver for languages\n\
+    \ 'this' in JavaScript, C++, Java etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXJ\STX\DC2\EOT\148\ETX\DC4\SYN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXK\SOH\DC2\EOT\150\ETX\EOT\t\n\
+    \O\n\
+    \\ACK\EOT\b\EOT\NUL\STXK\DC2\EOT\150\ETX\EOT\SI\SUB? Analogous to 'Protocol' and 'TypeClass', for Rust, Scala etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXK\STX\DC2\EOT\150\ETX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXL\SOH\DC2\EOT\152\ETX\EOT\SI\n\
+    \E\n\
+    \\ACK\EOT\b\EOT\NUL\STXL\DC2\EOT\152\ETX\EOT\NAK\SUB5 Analogous to 'AbstractMethod', for Rust, Scala etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXL\STX\DC2\EOT\152\ETX\DC2\DC4\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXM\SOH\DC2\EOT\155\ETX\EOT\b\n\
+    \\137\SOH\n\
+    \\ACK\EOT\b\EOT\NUL\STXM\DC2\EOT\155\ETX\EOT\SO\SUBy Data type definition for languages like OCaml which use `type`\n\
+    \ rather than separate keywords like `struct` and `enum`.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXM\STX\DC2\EOT\155\ETX\v\r\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXN\SOH\DC2\EOT\156\ETX\EOT\r\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STXN\DC2\EOT\156\ETX\EOT\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXN\STX\DC2\EOT\156\ETX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXO\SOH\DC2\EOT\158\ETX\EOT\r\n\
+    \S\n\
+    \\ACK\EOT\b\EOT\NUL\STXO\DC2\EOT\158\ETX\EOT\DC3\SUBC Analogous to 'Trait' and 'Protocol', for Haskell, Purescript etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXO\STX\DC2\EOT\158\ETX\DLE\DC2\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXP\SOH\DC2\EOT\160\ETX\EOT\DC3\n\
+    \M\n\
+    \\ACK\EOT\b\EOT\NUL\STXP\DC2\EOT\160\ETX\EOT\EM\SUB= Analogous to 'AbstractMethod', for Haskell, Purescript etc.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXP\STX\DC2\EOT\160\ETX\SYN\CAN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXQ\SOH\DC2\EOT\162\ETX\EOT\SO\n\
+    \\GS\n\
+    \\ACK\EOT\b\EOT\NUL\STXQ\DC2\EOT\162\ETX\EOT\DC4\SUB\r For Haskell\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXQ\STX\DC2\EOT\162\ETX\DC1\DC3\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXR\SOH\DC2\EOT\163\ETX\EOT\DC1\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STXR\DC2\EOT\163\ETX\EOT\ETB\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXR\STX\DC2\EOT\163\ETX\DC4\SYN\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXS\SOH\DC2\EOT\165\ETX\EOT\t\n\
+    \(\n\
+    \\ACK\EOT\b\EOT\NUL\STXS\DC2\EOT\165\ETX\EOT\SI\SUB\CAN For C, C++, Capn Proto\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXS\STX\DC2\EOT\165\ETX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXT\SOH\DC2\EOT\166\ETX\EOT\t\n\
+    \\SO\n\
+    \\ACK\EOT\b\EOT\NUL\STXT\DC2\EOT\166\ETX\EOT\SI\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXT\STX\DC2\EOT\166\ETX\f\SO\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXU\SOH\DC2\EOT\167\ETX\EOT\f\n\
+    \[\n\
+    \\ACK\EOT\b\EOT\NUL\STXU\DC2\EOT\167\ETX\EOT\DC2\"K Next = 87;\n\
+    \ Feel free to open a PR proposing new language-specific kinds.\n\
+    \\n\
+    \\SI\n\
+    \\a\EOT\b\EOT\NUL\STXU\STX\DC2\EOT\167\ETX\SI\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\EOT\ENQ\DC2\EOT\180\ETX\STX\b\n\
+    \\243\ETX\n\
+    \\EOT\EOT\b\STX\EOT\DC2\EOT\180\ETX\STX\SUB\SUB\228\ETX (optional) The name of this symbol as it should be displayed to the user.\n\
+    \ For example, the symbol \"com/example/MyClass#myMethod(+1).\" should have the\n\
+    \ display name \"myMethod\". The `symbol` field is not a reliable source of\n\
+    \ the display name for several reasons:\n\
+    \\n\
+    \ - Local symbols don't encode the name.\n\
+    \ - Some languages have case-insensitive names, so the symbol is all-lowercase.\n\
+    \ - The symbol may encode names with special characters that should not be\n\
+    \   displayed to the user.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\EOT\SOH\DC2\EOT\180\ETX\t\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\EOT\ETX\DC2\EOT\180\ETX\CAN\EM\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ENQ\ACK\DC2\EOT\187\ETX\STX\v\n\
+    \\159\ETX\n\
+    \\EOT\EOT\b\STX\ENQ\DC2\EOT\187\ETX\STX(\SUB\144\ETX (optional) The signature of this symbol as it's displayed in API\n\
+    \ documentation or in hover tooltips. For example, a Java method that adds\n\
+    \ two numbers would have `Signature.language = \"java\"` and\n\
+    \ `Signature.text = \"void add(int a, int b)\"`. The `language` and `text`\n\
+    \ fields are required while `occurrences` can be optionally included to\n\
+    \ support hyperlinking referenced symbols in the signature.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ENQ\SOH\DC2\EOT\187\ETX\f#\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ENQ\ETX\DC2\EOT\187\ETX&'\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ACK\ENQ\DC2\EOT\205\ETX\STX\b\n\
+    \\201\b\n\
+    \\EOT\EOT\b\STX\ACK\DC2\EOT\205\ETX\STX\RS\SUB\186\b (optional) The enclosing symbol if this is a local symbol.  For non-local\n\
+    \ symbols, the enclosing symbol should be parsed from the `symbol` field\n\
+    \ using the `Descriptor` grammar.\n\
+    \\n\
+    \ The primary use-case for this field is to allow local symbol to be displayed\n\
+    \ in a symbol hierarchy for API documentation. It's OK to leave this field\n\
+    \ empty for local variables since local variables usually don't belong in API\n\
+    \ documentation. However, in the situation that you wish to include a local\n\
+    \ symbol in the hierarchy, then you can use `enclosing_symbol` to locate the\n\
+    \ \"parent\" or \"owner\" of this local symbol. For example, a Java indexer may\n\
+    \ choose to use local symbols for private class fields while providing an\n\
+    \ `enclosing_symbol` to reference the enclosing class to allow the field to\n\
+    \ be part of the class documentation hierarchy. From the perspective of an\n\
+    \ author of an indexer, the decision to use a local symbol or global symbol\n\
+    \ should exclusively be determined whether the local symbol is accessible\n\
+    \ outside the document, not by the capability to find the enclosing\n\
+    \ symbol.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ACK\SOH\DC2\EOT\205\ETX\t\EM\n\
+    \\r\n\
+    \\ENQ\EOT\b\STX\ACK\ETX\DC2\EOT\205\ETX\FS\GS\n\
+    \\f\n\
+    \\STX\EOT\t\DC2\ACK\208\ETX\NUL\132\EOT\SOH\n\
+    \\v\n\
+    \\ETX\EOT\t\SOH\DC2\EOT\208\ETX\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\NUL\ENQ\DC2\EOT\209\ETX\STX\b\n\
+    \\f\n\
+    \\EOT\EOT\t\STX\NUL\DC2\EOT\209\ETX\STX\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\NUL\SOH\DC2\EOT\209\ETX\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\NUL\ETX\DC2\EOT\209\ETX\DC2\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\SOH\ENQ\DC2\EOT\234\ETX\STX\ACK\n\
+    \\222\b\n\
+    \\EOT\EOT\t\STX\SOH\DC2\EOT\234\ETX\STX\CAN\SUB\207\b When resolving \"Find references\", this field documents what other symbols\n\
+    \ should be included together with this symbol. For example, consider the\n\
+    \ following TypeScript code that defines two symbols `Animal#sound()` and\n\
+    \ `Dog#sound()`:\n\
+    \ ```ts\n\
+    \ interface Animal {\n\
+    \           ^^^^^^ definition Animal#\n\
+    \   sound(): string\n\
+    \   ^^^^^ definition Animal#sound()\n\
+    \ }\n\
+    \ class Dog implements Animal {\n\
+    \       ^^^ definition Dog#, relationships = [{symbol: \"Animal#\", is_implementation: true}]\n\
+    \   public sound(): string { return \"woof\" }\n\
+    \          ^^^^^ definition Dog#sound(), references_symbols = Animal#sound(), relationships = [{symbol: \"Animal#sound()\", is_implementation:true, is_reference: true}]\n\
+    \ }\n\
+    \ const animal: Animal = new Dog()\n\
+    \               ^^^^^^ reference Animal#\n\
+    \ console.log(animal.sound())\n\
+    \                    ^^^^^ reference Animal#sound()\n\
+    \ ```\n\
+    \ Doing \"Find references\" on the symbol `Animal#sound()` should return\n\
+    \ references to the `Dog#sound()` method as well. Vice-versa, doing \"Find\n\
+    \ references\" on the `Dog#sound()` method should include references to the\n\
+    \ `Animal#sound()` method as well.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\SOH\SOH\DC2\EOT\234\ETX\a\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\SOH\ETX\DC2\EOT\234\ETX\SYN\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\STX\ENQ\DC2\EOT\243\ETX\STX\ACK\n\
+    \\238\ETX\n\
+    \\EOT\EOT\t\STX\STX\DC2\EOT\243\ETX\STX\GS\SUB\223\ETX Similar to `is_reference` but for \"Find implementations\".\n\
+    \ It's common for `is_implementation` and `is_reference` to both be true but\n\
+    \ it's not always the case.\n\
+    \ In the TypeScript example above, observe that `Dog#` has an\n\
+    \ `is_implementation` relationship with `\"Animal#\"` but not `is_reference`.\n\
+    \ This is because \"Find references\" on the \"Animal#\" symbol should not return\n\
+    \ \"Dog#\". We only want \"Dog#\" to return as a result for \"Find\n\
+    \ implementations\" on the \"Animal#\" symbol.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\STX\SOH\DC2\EOT\243\ETX\a\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\STX\ETX\DC2\EOT\243\ETX\ESC\FS\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\ETX\ENQ\DC2\EOT\245\ETX\STX\ACK\n\
+    \P\n\
+    \\EOT\EOT\t\STX\ETX\DC2\EOT\245\ETX\STX\RS\SUBB Similar to `references_symbols` but for \"Go to type definition\".\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\ETX\SOH\DC2\EOT\245\ETX\a\EM\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\ETX\ETX\DC2\EOT\245\ETX\FS\GS\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\EOT\ENQ\DC2\EOT\130\EOT\STX\ACK\n\
+    \\216\ENQ\n\
+    \\EOT\EOT\t\STX\EOT\DC2\EOT\130\EOT\STX\EM\SUB\134\ENQ Allows overriding the behavior of \"Go to definition\" and \"Find references\"\n\
+    \ for symbols which do not have a definition of their own or could\n\
+    \ potentially have multiple definitions.\n\
+    \\n\
+    \ For example, in a language with single inheritance and no field overriding,\n\
+    \ inherited fields can reuse the same symbol as the ancestor which declares\n\
+    \ the field. In such a situation, is_definition is not needed.\n\
+    \\n\
+    \ On the other hand, in languages with single inheritance and some form\n\
+    \ of mixins, you can use is_definition to relate the symbol to the\n\
+    \ matching symbol in ancestor classes, and is_reference to relate the\n\
+    \ symbol to the matching symbol in mixins.\n\
+    \\"A Update registerInverseRelationships on adding a new field here.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\EOT\SOH\DC2\EOT\130\EOT\a\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\t\STX\EOT\ETX\DC2\EOT\130\EOT\ETB\CAN\n\
+    \\136\ETX\n\
+    \\STX\ENQ\ETX\DC2\ACK\139\EOT\NUL\161\EOT\SOH\SUB\249\STX SymbolRole declares what \"role\" a symbol has in an occurrence. A role is\n\
+    \ encoded as a bitset where each bit represents a different role. For example,\n\
+    \ to determine if the `Import` role is set, test whether the second bit of the\n\
+    \ enum value is defined. In pseudocode, this can be implemented with the\n\
+    \ logic: `const isImportRole = (role.value & SymbolRole.Import.value) > 0`.\n\
+    \\n\
+    \\v\n\
+    \\ETX\ENQ\ETX\SOH\DC2\EOT\139\EOT\ENQ\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\NUL\SOH\DC2\EOT\142\EOT\STX\ETB\n\
+    \v\n\
+    \\EOT\ENQ\ETX\STX\NUL\DC2\EOT\142\EOT\STX\FS\SUBh This case is not meant to be used; it only exists to avoid an error\n\
+    \ from the Protobuf code generator.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\NUL\STX\DC2\EOT\142\EOT\SUB\ESC\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\SOH\SOH\DC2\EOT\144\EOT\STX\f\n\
+    \T\n\
+    \\EOT\ENQ\ETX\STX\SOH\DC2\EOT\144\EOT\STX\DC3\SUBF Is the symbol defined here? If not, then this is a symbol reference.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\SOH\STX\DC2\EOT\144\EOT\SI\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\STX\SOH\DC2\EOT\146\EOT\STX\b\n\
+    \,\n\
+    \\EOT\ENQ\ETX\STX\STX\DC2\EOT\146\EOT\STX\SI\SUB\RS Is the symbol imported here?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\STX\STX\DC2\EOT\146\EOT\v\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ETX\SOH\DC2\EOT\148\EOT\STX\r\n\
+    \+\n\
+    \\EOT\ENQ\ETX\STX\ETX\DC2\EOT\148\EOT\STX\DC4\SUB\GS Is the symbol written here?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ETX\STX\DC2\EOT\148\EOT\DLE\DC3\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\EOT\SOH\DC2\EOT\150\EOT\STX\f\n\
+    \(\n\
+    \\EOT\ENQ\ETX\STX\EOT\DC2\EOT\150\EOT\STX\DC3\SUB\SUB Is the symbol read here?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\EOT\STX\DC2\EOT\150\EOT\SI\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ENQ\SOH\DC2\EOT\152\EOT\STX\v\n\
+    \0\n\
+    \\EOT\ENQ\ETX\STX\ENQ\DC2\EOT\152\EOT\STX\DC3\SUB\" Is the symbol in generated code?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ENQ\STX\DC2\EOT\152\EOT\SO\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ACK\SOH\DC2\EOT\154\EOT\STX\ACK\n\
+    \+\n\
+    \\EOT\ENQ\ETX\STX\ACK\DC2\EOT\154\EOT\STX\SO\SUB\GS Is the symbol in test code?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\ACK\STX\DC2\EOT\154\EOT\t\r\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\a\SOH\DC2\EOT\160\EOT\STX\DC3\n\
+    \\237\SOH\n\
+    \\EOT\ENQ\ETX\STX\a\DC2\EOT\160\EOT\STX\ESC\SUB\222\SOH Is this a signature for a symbol that is defined elsewhere?\n\
+    \\n\
+    \ Applies to forward declarations for languages like C, C++\n\
+    \ and Objective-C, as well as `val` declarations in interface\n\
+    \ files in languages like SML and OCaml.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\ETX\STX\a\STX\DC2\EOT\160\EOT\SYN\SUB\n\
+    \\f\n\
+    \\STX\ENQ\EOT\DC2\ACK\163\EOT\NUL\128\ENQ\SOH\n\
+    \\v\n\
+    \\ETX\ENQ\EOT\SOH\DC2\EOT\163\EOT\ENQ\SI\n\
+    \\v\n\
+    \\ETX\ENQ\EOT\ETX\DC2\EOT\164\EOT\STX\FS\n\
+    \\f\n\
+    \\EOT\ENQ\EOT\ETX\STX\DC2\EOT\164\EOT\STX\FS\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\NUL\SOH\DC2\EOT\166\EOT\STX\ETB\n\
+    \\f\n\
+    \\EOT\ENQ\EOT\STX\NUL\DC2\EOT\166\EOT\STX\FS\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\NUL\STX\DC2\EOT\166\EOT\SUB\ESC\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SOH\SOH\DC2\EOT\169\EOT\STX\t\n\
+    \;\n\
+    \\EOT\ENQ\EOT\STX\SOH\DC2\EOT\169\EOT\STX\SO\SUB- Comment, including comment markers and text\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SOH\STX\DC2\EOT\169\EOT\f\r\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\STX\SOH\DC2\EOT\172\EOT\STX\SYN\n\
+    \\ESC\n\
+    \\EOT\ENQ\EOT\STX\STX\DC2\EOT\172\EOT\STX\ESC\SUB\r `;` `.` `,`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\STX\STX\DC2\EOT\172\EOT\EM\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ETX\SOH\DC2\EOT\174\EOT\STX\DC4\n\
+    \2\n\
+    \\EOT\ENQ\EOT\STX\ETX\DC2\EOT\174\EOT\STX\EM\SUB$ (), {}, [] when used syntactically\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ETX\STX\DC2\EOT\174\EOT\ETB\CAN\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\EOT\SOH\DC2\EOT\177\EOT\STX\t\n\
+    \5\n\
+    \\EOT\ENQ\EOT\STX\EOT\DC2\EOT\177\EOT\STX\SO\SUB' `if`, `else`, `return`, `class`, etc.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\EOT\STX\DC2\EOT\177\EOT\f\r\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ENQ\SOH\DC2\EOT\178\EOT\STX\DC3\n\
+    \\f\n\
+    \\EOT\ENQ\EOT\STX\ENQ\DC2\EOT\178\EOT\STX,\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ENQ\STX\DC2\EOT\178\EOT\SYN\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ENQ\ETX\DC2\EOT\178\EOT\CAN+\n\
+    \\SO\n\
+    \\ACK\ENQ\EOT\STX\ENQ\ETX\SOH\DC2\EOT\178\EOT\EM*\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ACK\SOH\DC2\EOT\181\EOT\STX\DC4\n\
+    \\RS\n\
+    \\EOT\ENQ\EOT\STX\ACK\DC2\EOT\181\EOT\STX\EM\SUB\DLE `+`, `*`, etc.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ACK\STX\DC2\EOT\181\EOT\ETB\CAN\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\a\SOH\DC2\EOT\184\EOT\STX\f\n\
+    \X\n\
+    \\EOT\ENQ\EOT\STX\a\DC2\EOT\184\EOT\STX\DC1\SUBJ non-specific catch-all for any identifier not better described elsewhere\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\a\STX\DC2\EOT\184\EOT\SI\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\b\SOH\DC2\EOT\186\EOT\STX\DC3\n\
+    \N\n\
+    \\EOT\ENQ\EOT\STX\b\DC2\EOT\186\EOT\STX\CAN\SUB@ Identifiers builtin to the language: `min`, `print` in Python.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\b\STX\DC2\EOT\186\EOT\SYN\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\t\SOH\DC2\EOT\188\EOT\STX\DLE\n\
+    \[\n\
+    \\EOT\ENQ\EOT\STX\t\DC2\EOT\188\EOT\STX\NAK\SUBM Identifiers representing `null`-like values: `None` in Python, `nil` in Go.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\t\STX\DC2\EOT\188\EOT\DC3\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\n\
+    \\SOH\DC2\EOT\190\EOT\STX\DC4\n\
+    \.\n\
+    \\EOT\ENQ\EOT\STX\n\
+    \\DC2\EOT\190\EOT\STX\EM\SUB  `xyz` in `const xyz = \"hello\"`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\n\
+    \\STX\DC2\EOT\190\EOT\ETB\CAN\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\v\SOH\DC2\EOT\192\EOT\STX\EM\n\
+    \'\n\
+    \\EOT\ENQ\EOT\STX\v\DC2\EOT\192\EOT\STX\US\SUB\EM `var X = \"hello\"` in Go\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\v\STX\DC2\EOT\192\EOT\FS\RS\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\f\SOH\DC2\EOT\194\EOT\STX\NAK\n\
+    \3\n\
+    \\EOT\ENQ\EOT\STX\f\DC2\EOT\194\EOT\STX\ESC\SUB% Parameter definition and references\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\f\STX\DC2\EOT\194\EOT\CAN\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\r\SOH\DC2\EOT\196\EOT\STX\DC1\n\
+    \X\n\
+    \\EOT\ENQ\EOT\STX\r\DC2\EOT\196\EOT\STX\ETB\SUBJ Identifiers for variable definitions and references within a local scope\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\r\STX\DC2\EOT\196\EOT\DC4\SYN\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SO\SOH\DC2\EOT\198\EOT\STX\DC4\n\
+    \K\n\
+    \\EOT\ENQ\EOT\STX\SO\DC2\EOT\198\EOT\STX\SUB\SUB= Identifiers that shadow other identifiers in an outer scope\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SO\STX\DC2\EOT\198\EOT\ETB\EM\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SI\SOH\DC2\EOT\203\EOT\STX\NAK\n\
+    \\205\SOH\n\
+    \\EOT\ENQ\EOT\STX\SI\DC2\EOT\203\EOT\STX\ESC\SUB\190\SOH Identifier representing a unit of code abstraction and/or namespacing.\n\
+    \\n\
+    \ NOTE: This corresponds to a package in Go and JVM languages,\n\
+    \ and a module in languages like Python and JavaScript.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SI\STX\DC2\EOT\203\EOT\CAN\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DLE\SOH\DC2\EOT\204\EOT\STX\DC2\n\
+    \\f\n\
+    \\EOT\ENQ\EOT\STX\DLE\DC2\EOT\204\EOT\STX,\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DLE\STX\DC2\EOT\204\EOT\NAK\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DLE\ETX\DC2\EOT\204\EOT\CAN+\n\
+    \\SO\n\
+    \\ACK\ENQ\EOT\STX\DLE\ETX\SOH\DC2\EOT\204\EOT\EM*\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC1\SOH\DC2\EOT\207\EOT\STX\DC4\n\
+    \4\n\
+    \\EOT\ENQ\EOT\STX\DC1\DC2\EOT\207\EOT\STX\SUB\SUB& Function references, including calls\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC1\STX\DC2\EOT\207\EOT\ETB\EM\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC2\SOH\DC2\EOT\209\EOT\STX\RS\n\
+    \(\n\
+    \\EOT\ENQ\EOT\STX\DC2\DC2\EOT\209\EOT\STX$\SUB\SUB Function definition only\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC2\STX\DC2\EOT\209\EOT!#\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC3\SOH\DC2\EOT\212\EOT\STX\DC1\n\
+    \7\n\
+    \\EOT\ENQ\EOT\STX\DC3\DC2\EOT\212\EOT\STX\ETB\SUB) Macro references, including invocations\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC3\STX\DC2\EOT\212\EOT\DC4\SYN\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC4\SOH\DC2\EOT\214\EOT\STX\ESC\n\
+    \%\n\
+    \\EOT\ENQ\EOT\STX\DC4\DC2\EOT\214\EOT\STX!\SUB\ETB Macro definition only\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\DC4\STX\DC2\EOT\214\EOT\RS \n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\NAK\SOH\DC2\EOT\217\EOT\STX\DLE\n\
+    \!\n\
+    \\EOT\ENQ\EOT\STX\NAK\DC2\EOT\217\EOT\STX\SYN\SUB\DC3 non-builtin types\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\NAK\STX\DC2\EOT\217\EOT\DC3\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SYN\SOH\DC2\EOT\219\EOT\STX\ETB\n\
+    \K\n\
+    \\EOT\ENQ\EOT\STX\SYN\DC2\EOT\219\EOT\STX\GS\SUB= builtin types only, such as `str` for Python or `int` in Go\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SYN\STX\DC2\EOT\219\EOT\SUB\FS\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ETB\SOH\DC2\EOT\222\EOT\STX\NAK\n\
+    \7\n\
+    \\EOT\ENQ\EOT\STX\ETB\DC2\EOT\222\EOT\STX\ESC\SUB) Python decorators, c-like __attribute__\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ETB\STX\DC2\EOT\222\EOT\CAN\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\CAN\SOH\DC2\EOT\225\EOT\STX\r\n\
+    \\DC4\n\
+    \\EOT\ENQ\EOT\STX\CAN\DC2\EOT\225\EOT\STX\DC3\SUB\ACK `\\b`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\CAN\STX\DC2\EOT\225\EOT\DLE\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\EM\SOH\DC2\EOT\227\EOT\STX\SI\n\
+    \\CAN\n\
+    \\EOT\ENQ\EOT\STX\EM\DC2\EOT\227\EOT\STX\NAK\SUB\n\
+    \ `*`, `+`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\EM\STX\DC2\EOT\227\EOT\DC2\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SUB\SOH\DC2\EOT\229\EOT\STX\SI\n\
+    \\DC3\n\
+    \\EOT\ENQ\EOT\STX\SUB\DC2\EOT\229\EOT\STX\NAK\SUB\ENQ `.`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\SUB\STX\DC2\EOT\229\EOT\DC2\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ESC\SOH\DC2\EOT\231\EOT\STX\DLE\n\
+    \\"\n\
+    \\EOT\ENQ\EOT\STX\ESC\DC2\EOT\231\EOT\STX\SYN\SUB\DC4 `(`, `)`, `[`, `]`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\ESC\STX\DC2\EOT\231\EOT\DC3\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\FS\SOH\DC2\EOT\233\EOT\STX\v\n\
+    \\CAN\n\
+    \\EOT\ENQ\EOT\STX\FS\DC2\EOT\233\EOT\STX\DC1\SUB\n\
+    \ `|`, `-`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\FS\STX\DC2\EOT\233\EOT\SO\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\GS\SOH\DC2\EOT\236\EOT\STX\SI\n\
+    \0\n\
+    \\EOT\ENQ\EOT\STX\GS\DC2\EOT\236\EOT\STX\NAK\SUB\" Literal strings: \"Hello, world!\"\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\GS\STX\DC2\EOT\236\EOT\DC2\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\RS\SOH\DC2\EOT\238\EOT\STX\NAK\n\
+    \-\n\
+    \\EOT\ENQ\EOT\STX\RS\DC2\EOT\238\EOT\STX\ESC\SUB\US non-regex escapes: \"\\t\", \"\\n\"\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\RS\STX\DC2\EOT\238\EOT\CAN\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\US\SOH\DC2\EOT\240\EOT\STX\SYN\n\
+    \_\n\
+    \\EOT\ENQ\EOT\STX\US\DC2\EOT\240\EOT\STX\FS\SUBQ datetimes within strings, special words within a string, `{}` in format strings\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\US\STX\DC2\EOT\240\EOT\EM\ESC\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX \SOH\DC2\EOT\242\EOT\STX\DC2\n\
+    \G\n\
+    \\EOT\ENQ\EOT\STX \DC2\EOT\242\EOT\STX\CAN\SUB9 \"key\" in { \"key\": \"value\" }, useful for example in JSON\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX \STX\DC2\EOT\242\EOT\NAK\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX!\SOH\DC2\EOT\244\EOT\STX\DC2\n\
+    \V\n\
+    \\EOT\ENQ\EOT\STX!\DC2\EOT\244\EOT\STX\CAN\SUBH 'c' or similar, in languages that differentiate strings and characters\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX!\STX\DC2\EOT\244\EOT\NAK\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\"\SOH\DC2\EOT\246\EOT\STX\DLE\n\
+    \9\n\
+    \\EOT\ENQ\EOT\STX\"\DC2\EOT\246\EOT\STX\SYN\SUB+ Literal numbers, both floats and integers\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX\"\STX\DC2\EOT\246\EOT\DC3\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX#\SOH\DC2\EOT\248\EOT\STX\DLE\n\
+    \\US\n\
+    \\EOT\ENQ\EOT\STX#\DC2\EOT\248\EOT\STX\SYN\SUB\DC1 `true`, `false`\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX#\STX\DC2\EOT\248\EOT\DC3\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX$\SOH\DC2\EOT\251\EOT\STX\ENQ\n\
+    \&\n\
+    \\EOT\ENQ\EOT\STX$\DC2\EOT\251\EOT\STX\v\SUB\CAN Used for XML-like tags\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX$\STX\DC2\EOT\251\EOT\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX%\SOH\DC2\EOT\253\EOT\STX\SO\n\
+    \/\n\
+    \\EOT\ENQ\EOT\STX%\DC2\EOT\253\EOT\STX\DC4\SUB! Attribute name in XML-like tags\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX%\STX\DC2\EOT\253\EOT\DC1\DC3\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX&\SOH\DC2\EOT\255\EOT\STX\SO\n\
+    \,\n\
+    \\EOT\ENQ\EOT\STX&\DC2\EOT\255\EOT\STX\DC4\SUB\RS Delimiters for XML-like tags\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\EOT\STX&\STX\DC2\EOT\255\EOT\DC1\DC3\n\
+    \\239\STX\n\
+    \\STX\EOT\n\
+    \\DC2\ACK\136\ENQ\NUL\140\ENQ\SOH\SUB\224\STX SingleLineRange represents a half-open [start, end) range within a single line.\n\
+    \\n\
+    \ Line numbers and characters are always 0-based. Make sure to increment them\n\
+    \ before displaying in an editor-like UI because editors conventionally use\n\
+    \ 1-based numbers. The `character` values are interpreted based on the\n\
+    \ `PositionEncoding` for the enclosing Document.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\n\
+    \\SOH\DC2\EOT\136\ENQ\b\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ENQ\DC2\EOT\137\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\n\
+    \\STX\NUL\DC2\EOT\137\ENQ\STX\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\SOH\DC2\EOT\137\ENQ\b\f\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\NUL\ETX\DC2\EOT\137\ENQ\SI\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ENQ\DC2\EOT\138\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\n\
+    \\STX\SOH\DC2\EOT\138\ENQ\STX\FS\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\SOH\DC2\EOT\138\ENQ\b\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\SOH\ETX\DC2\EOT\138\ENQ\SUB\ESC\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\ENQ\DC2\EOT\139\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\n\
+    \\STX\STX\DC2\EOT\139\ENQ\STX\SUB\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\SOH\DC2\EOT\139\ENQ\b\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\n\
+    \\STX\STX\ETX\DC2\EOT\139\ENQ\CAN\EM\n\
+    \\182\EOT\n\
+    \\STX\EOT\v\DC2\ACK\152\ENQ\NUL\157\ENQ\SOH\SUB\167\EOT MultiLineRange represents a half-open [start, end) range spanning multiple lines.\n\
+    \\n\
+    \ Line numbers and characters are always 0-based. Make sure to increment them\n\
+    \ before displaying in an editor-like UI because editors conventionally use\n\
+    \ 1-based numbers. The `character` values are interpreted based on the\n\
+    \ `PositionEncoding` for the enclosing Document.\n\
+    \\n\
+    \ Producers SHOULD use `SingleLineRange` when `start_line == end_line` to keep\n\
+    \ indexes compact, but consumers MUST accept multi-line encoding even when the\n\
+    \ range happens to fit on a single line.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\v\SOH\DC2\EOT\152\ENQ\b\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\NUL\ENQ\DC2\EOT\153\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\v\STX\NUL\DC2\EOT\153\ENQ\STX\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\NUL\SOH\DC2\EOT\153\ENQ\b\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\NUL\ETX\DC2\EOT\153\ENQ\NAK\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\SOH\ENQ\DC2\EOT\154\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\v\STX\SOH\DC2\EOT\154\ENQ\STX\FS\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\SOH\SOH\DC2\EOT\154\ENQ\b\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\SOH\ETX\DC2\EOT\154\ENQ\SUB\ESC\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\STX\ENQ\DC2\EOT\155\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\v\STX\STX\DC2\EOT\155\ENQ\STX\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\STX\SOH\DC2\EOT\155\ENQ\b\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\STX\ETX\DC2\EOT\155\ENQ\DC3\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\ETX\ENQ\DC2\EOT\156\ENQ\STX\a\n\
+    \\f\n\
+    \\EOT\EOT\v\STX\ETX\DC2\EOT\156\ENQ\STX\SUB\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\ETX\SOH\DC2\EOT\156\ENQ\b\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\v\STX\ETX\ETX\DC2\EOT\156\ENQ\CAN\EM\n\
+    \\228\a\n\
+    \\STX\EOT\f\DC2\ACK\179\ENQ\NUL\165\ACK\SOH\SUB\213\a Occurrence associates a source position with a symbol and/or highlighting\n\
+    \ information.\n\
+    \\n\
+    \ If possible, indexers should try to bundle logically related information\n\
+    \ across occurrences into a single occurrence to reduce payload sizes.\n\
+    \\n\
+    \ Range encoding:\n\
+    \\n\
+    \ An Occurrence carries its source range in one of two ways: the deprecated\n\
+    \ `range` field (a `repeated int32` packed encoding kept for backward\n\
+    \ compatibility), or one of the typed alternatives in the `typed_range`\n\
+    \ oneof. New producers SHOULD set `typed_range` and SHOULD NOT set the\n\
+    \ deprecated `range` field. The same rule applies to `enclosing_range` and\n\
+    \ `typed_enclosing_range`.\n\
+    \\n\
+    \ When both encodings are present on the same Occurrence, `typed_range` takes\n\
+    \ precedence over `range` (likewise `typed_enclosing_range` over\n\
+    \ `enclosing_range`). Producers that set both forms MUST keep them\n\
+    \ semantically equivalent. Consumers SHOULD prefer the typed form when\n\
+    \ available and fall back to the `repeated int32` form otherwise.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\f\SOH\DC2\EOT\179\ENQ\b\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\NUL\EOT\DC2\EOT\196\ENQ\STX\n\
+    \\n\
+    \\187\a\n\
+    \\EOT\EOT\f\STX\NUL\DC2\EOT\196\ENQ\STX/\SUB\172\a Deprecated: Use `single_line_range` or `multi_line_range` instead.\n\
+    \\n\
+    \ Half-open [start, end) range. Must be exactly three or four elements:\n\
+    \ - Three elements: `[startLine, startCharacter, endCharacter]` (single-line)\n\
+    \ - Four elements: `[startLine, startCharacter, endLine, endCharacter]`\n\
+    \\n\
+    \ The end line of a three-element range is inferred to equal the start line.\n\
+    \\n\
+    \ Historical note: the original draft of this schema had a `Range` message\n\
+    \ type with `start` and `end` fields of type `Position`, mirroring LSP.\n\
+    \ Benchmarks revealed that this encoding was inefficient and that we could\n\
+    \ reduce the total payload size of an index by 50% by using `repeated int32`\n\
+    \ instead. However, the lack of type safety led to the introduction of\n\
+    \ `single_line_range` and `multi_line_range` as typed alternatives; the\n\
+    \ typed encoding's per-index size overhead is small (single-digit percent)\n\
+    \ because ranges are only a fraction of a typical index payload.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\NUL\ENQ\DC2\EOT\196\ENQ\v\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\NUL\SOH\DC2\EOT\196\ENQ\DC1\SYN\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\NUL\ETX\DC2\EOT\196\ENQ\EM\SUB\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\NUL\b\DC2\EOT\196\ENQ\ESC.\n\
+    \\SO\n\
+    \\ACK\EOT\f\STX\NUL\b\ETX\DC2\EOT\196\ENQ\FS-\n\
+    \\236\SOH\n\
+    \\EOT\EOT\f\b\NUL\DC2\ACK\204\ENQ\STX\209\ENQ\ETX\SUB\219\SOH Half-open [start, end) source range of this occurrence.\n\
+    \\n\
+    \ It is allowed for the range to be empty (i.e. start==end).\n\
+    \\n\
+    \ When both `typed_range` and the deprecated `range` field are set,\n\
+    \ `typed_range` takes precedence.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\b\NUL\SOH\DC2\EOT\204\ENQ\b\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\SOH\ACK\DC2\EOT\206\ENQ\EOT\DC3\n\
+    \-\n\
+    \\EOT\EOT\f\STX\SOH\DC2\EOT\206\ENQ\EOT*\SUB\US Range spanning a single line.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\SOH\SOH\DC2\EOT\206\ENQ\DC4%\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\SOH\ETX\DC2\EOT\206\ENQ()\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\STX\ACK\DC2\EOT\208\ENQ\EOT\DC2\n\
+    \.\n\
+    \\EOT\EOT\f\STX\STX\DC2\EOT\208\ENQ\EOT(\SUB  Range spanning multiple lines.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\STX\SOH\DC2\EOT\208\ENQ\DC3#\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\STX\ETX\DC2\EOT\208\ENQ&'\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ETX\ENQ\DC2\EOT\212\ENQ\STX\b\n\
+    \\138\SOH\n\
+    \\EOT\EOT\f\STX\ETX\DC2\EOT\212\ENQ\STX\DC4\SUB| (optional) The symbol that appears at this position. See\n\
+    \ `SymbolInformation.symbol` for how to format symbols as strings.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ETX\SOH\DC2\EOT\212\ENQ\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ETX\ETX\DC2\EOT\212\ENQ\DC2\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\EOT\ENQ\DC2\EOT\215\ENQ\STX\a\n\
+    \\151\SOH\n\
+    \\EOT\EOT\f\STX\EOT\DC2\EOT\215\ENQ\STX\EM\SUB\136\SOH (optional) Bitset containing `SymbolRole`s in this occurrence.\n\
+    \ See `SymbolRole`'s documentation for how to read and write this field.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\EOT\SOH\DC2\EOT\215\ENQ\b\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\EOT\ETX\DC2\EOT\215\ENQ\ETB\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ENQ\EOT\DC2\EOT\224\ENQ\STX\n\
+    \\n\
+    \\241\ETX\n\
+    \\EOT\EOT\f\STX\ENQ\DC2\EOT\224\ENQ\STX-\SUB\226\ETX (optional) CommonMark-formatted documentation for this specific range. If\n\
+    \ empty, the `Symbol.documentation` field is used instead. One example\n\
+    \ where this field might be useful is when the symbol represents a generic\n\
+    \ function (with abstract type parameters such as `List<T>`) and at this\n\
+    \ occurrence we know the exact values (such as `List<String>`).\n\
+    \\n\
+    \ This field can also be used for dynamically or gradually typed languages,\n\
+    \ which commonly allow for type-changing assignment.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ENQ\ENQ\DC2\EOT\224\ENQ\v\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ENQ\SOH\DC2\EOT\224\ENQ\DC2(\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ENQ\ETX\DC2\EOT\224\ENQ+,\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ACK\ACK\DC2\EOT\226\ENQ\STX\f\n\
+    \X\n\
+    \\EOT\EOT\f\STX\ACK\DC2\EOT\226\ENQ\STX\GS\SUBJ (optional) What syntax highlighting class should be used for this range?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ACK\SOH\DC2\EOT\226\ENQ\r\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\ACK\ETX\DC2\EOT\226\ENQ\ESC\FS\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\a\EOT\DC2\EOT\228\ENQ\STX\n\
+    \\n\
+    \W\n\
+    \\EOT\EOT\f\STX\a\DC2\EOT\228\ENQ\STX&\SUBI (optional) Diagnostics that have been reported for this specific range.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\a\ACK\DC2\EOT\228\ENQ\v\NAK\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\a\SOH\DC2\EOT\228\ENQ\SYN!\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\a\ETX\DC2\EOT\228\ENQ$%\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\b\EOT\DC2\EOT\232\ENQ\STX\n\
+    \\n\
+    \\139\SOH\n\
+    \\EOT\EOT\f\STX\b\DC2\EOT\232\ENQ\STX9\SUB} Deprecated: Use `typed_enclosing_range` instead.\n\
+    \\n\
+    \ Uses the same `repeated int32` encoding as the deprecated `range` field.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\b\ENQ\DC2\EOT\232\ENQ\v\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\b\SOH\DC2\EOT\232\ENQ\DC1 \n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\b\ETX\DC2\EOT\232\ENQ#$\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\b\b\DC2\EOT\232\ENQ%8\n\
+    \\SO\n\
+    \\ACK\EOT\f\STX\b\b\ETX\DC2\EOT\232\ENQ&7\n\
+    \\220\SO\n\
+    \\EOT\EOT\f\b\SOH\DC2\ACK\159\ACK\STX\164\ACK\ETX\SUB\203\SO (optional) Half-open source range of the nearest non-trivial enclosing AST\n\
+    \ node. This range must enclose the occurrence range. Example applications:\n\
+    \\n\
+    \ - Call hierarchies: to determine what symbols are referenced from the body\n\
+    \   of a function\n\
+    \ - Symbol outline: to display breadcrumbs from the cursor position to the\n\
+    \   root of the file\n\
+    \ - Expand selection: to select the nearest enclosing AST node.\n\
+    \ - Highlight range: to indicate the AST expression that is associated with a\n\
+    \   hover popover\n\
+    \\n\
+    \ For definition occurrences, the enclosing range should indicate the\n\
+    \ start/end bounds of the entire definition AST node, including\n\
+    \ documentation.\n\
+    \ ```\n\
+    \ const n = 3\n\
+    \       ^ range\n\
+    \ ^^^^^^^^^^^ enclosing_range\n\
+    \\n\
+    \ /** Parses the string into something */\n\
+    \ ^ enclosing_range start --------------------------------------|\n\
+    \ function parse(input string): string {                        |\n\
+    \          ^^^^^ range                                          |\n\
+    \     return input.slice(n)                                     |\n\
+    \ }                                                             |\n\
+    \ ^ enclosing_range end <---------------------------------------|\n\
+    \ ```\n\
+    \\n\
+    \ Any attributes/decorators/attached macros should also be part of the\n\
+    \ enclosing range.\n\
+    \\n\
+    \ ```python\n\
+    \ @cache\n\
+    \ ^ enclosing_range start---------------------|\n\
+    \ def factorial(n):                           |\n\
+    \     return n * factorial(n-1) if n else 1   |\n\
+    \ < enclosing_range end-----------------------|\n\
+    \\n\
+    \ ```\n\
+    \\n\
+    \ For reference occurrences, the enclosing range should indicate the start/end\n\
+    \ bounds of the parent expression.\n\
+    \ ```\n\
+    \ const a = a.b\n\
+    \             ^ range\n\
+    \           ^^^ enclosing_range\n\
+    \ const b = a.b(41).f(42).g(43)\n\
+    \                   ^ range\n\
+    \           ^^^^^^^^^^^^^ enclosing_range\n\
+    \ ```\n\
+    \\n\
+    \ When both `typed_enclosing_range` and the deprecated `enclosing_range`\n\
+    \ field are set, `typed_enclosing_range` takes precedence.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\b\SOH\SOH\DC2\EOT\159\ACK\b\GS\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\t\ACK\DC2\EOT\161\ACK\EOT\DC3\n\
+    \7\n\
+    \\EOT\EOT\f\STX\t\DC2\EOT\161\ACK\EOT5\SUB) Enclosing range spanning a single line.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\t\SOH\DC2\EOT\161\ACK\DC4/\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\t\ETX\DC2\EOT\161\ACK24\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\n\
+    \\ACK\DC2\EOT\163\ACK\EOT\DC2\n\
+    \8\n\
+    \\EOT\EOT\f\STX\n\
+    \\DC2\EOT\163\ACK\EOT3\SUB* Enclosing range spanning multiple lines.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\n\
+    \\SOH\DC2\EOT\163\ACK\DC3-\n\
+    \\r\n\
+    \\ENQ\EOT\f\STX\n\
+    \\ETX\DC2\EOT\163\ACK02\n\
+    \w\n\
+    \\STX\EOT\r\DC2\ACK\169\ACK\NUL\180\ACK\SOH\SUBi Represents a diagnostic, such as a compiler error or warning, which should be\n\
+    \ reported for a document.\n\
+    \\n\
+    \\v\n\
+    \\ETX\EOT\r\SOH\DC2\EOT\169\ACK\b\DC2\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\NUL\ACK\DC2\EOT\171\ACK\STX\n\
+    \\n\
+    \W\n\
+    \\EOT\EOT\r\STX\NUL\DC2\EOT\171\ACK\STX\CAN\SUBI Should this diagnostic be reported as an error, warning, info, or hint?\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\NUL\SOH\DC2\EOT\171\ACK\v\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\NUL\ETX\DC2\EOT\171\ACK\SYN\ETB\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\SOH\ENQ\DC2\EOT\173\ACK\STX\b\n\
+    \]\n\
+    \\EOT\EOT\r\STX\SOH\DC2\EOT\173\ACK\STX\DC2\SUBO (optional) Code of this diagnostic, which might appear in the user interface.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\SOH\SOH\DC2\EOT\173\ACK\t\r\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\SOH\ETX\DC2\EOT\173\ACK\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\STX\ENQ\DC2\EOT\175\ACK\STX\b\n\
+    \+\n\
+    \\EOT\EOT\r\STX\STX\DC2\EOT\175\ACK\STX\NAK\SUB\GS Message of this diagnostic.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\STX\SOH\DC2\EOT\175\ACK\t\DLE\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\STX\ETX\DC2\EOT\175\ACK\DC3\DC4\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\ETX\ENQ\DC2\EOT\178\ACK\STX\b\n\
+    \~\n\
+    \\EOT\EOT\r\STX\ETX\DC2\EOT\178\ACK\STX\DC4\SUBp (optional) Human-readable string describing the source of this diagnostic, e.g.\n\
+    \ 'typescript' or 'super lint'.\n\
+    \\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\ETX\SOH\DC2\EOT\178\ACK\t\SI\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\ETX\ETX\DC2\EOT\178\ACK\DC2\DC3\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\EOT\EOT\DC2\EOT\179\ACK\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\EOT\r\STX\EOT\DC2\EOT\179\ACK\STX\"\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\EOT\ACK\DC2\EOT\179\ACK\v\CAN\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\EOT\SOH\DC2\EOT\179\ACK\EM\GS\n\
+    \\r\n\
+    \\ENQ\EOT\r\STX\EOT\ETX\DC2\EOT\179\ACK !\n\
+    \\f\n\
+    \\STX\ENQ\ENQ\DC2\ACK\182\ACK\NUL\188\ACK\SOH\n\
+    \\v\n\
+    \\ETX\ENQ\ENQ\SOH\DC2\EOT\182\ACK\ENQ\r\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\NUL\SOH\DC2\EOT\183\ACK\STX\NAK\n\
+    \\f\n\
+    \\EOT\ENQ\ENQ\STX\NUL\DC2\EOT\183\ACK\STX\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\NUL\STX\DC2\EOT\183\ACK\CAN\EM\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\SOH\SOH\DC2\EOT\184\ACK\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\ENQ\STX\SOH\DC2\EOT\184\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\SOH\STX\DC2\EOT\184\ACK\n\
+    \\v\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\STX\SOH\DC2\EOT\185\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\ENQ\STX\STX\DC2\EOT\185\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\STX\STX\DC2\EOT\185\ACK\f\r\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\ETX\SOH\DC2\EOT\186\ACK\STX\r\n\
+    \\f\n\
+    \\EOT\ENQ\ENQ\STX\ETX\DC2\EOT\186\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\ETX\STX\DC2\EOT\186\ACK\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\EOT\SOH\DC2\EOT\187\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\ENQ\STX\EOT\DC2\EOT\187\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\ENQ\STX\EOT\STX\DC2\EOT\187\ACK\t\n\
+    \\n\
+    \\f\n\
+    \\STX\ENQ\ACK\DC2\ACK\190\ACK\NUL\194\ACK\SOH\n\
+    \\v\n\
+    \\ETX\ENQ\ACK\SOH\DC2\EOT\190\ACK\ENQ\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\NUL\SOH\DC2\EOT\191\ACK\STX\SUB\n\
+    \\f\n\
+    \\EOT\ENQ\ACK\STX\NUL\DC2\EOT\191\ACK\STX\US\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\NUL\STX\DC2\EOT\191\ACK\GS\RS\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\SOH\SOH\DC2\EOT\192\ACK\STX\r\n\
+    \\f\n\
+    \\EOT\ENQ\ACK\STX\SOH\DC2\EOT\192\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\SOH\STX\DC2\EOT\192\ACK\DLE\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\STX\SOH\DC2\EOT\193\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\ACK\STX\STX\DC2\EOT\193\ACK\STX\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\ACK\STX\STX\STX\DC2\EOT\193\ACK\SI\DLE\n\
+    \\208\ETX\n\
+    \\STX\ENQ\a\DC2\ACK\202\ACK\NUL\192\a\SOH\SUB\193\ETX Language standardises names of common programming languages that can be used\n\
+    \ for the `Document.language` field. The primary purpose of this enum is to\n\
+    \ prevent a situation where we have a single programming language ends up with\n\
+    \ multiple string representations. For example, the C++ language uses the name\n\
+    \ \"CPP\" in this enum and other names such as \"cpp\" are incompatible.\n\
+    \ Feel free to send a pull-request to add missing programming languages.\n\
+    \\n\
+    \\v\n\
+    \\ETX\ENQ\a\SOH\DC2\EOT\202\ACK\ENQ\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\NUL\SOH\DC2\EOT\203\ACK\STX\NAK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\NUL\DC2\EOT\203\ACK\STX\SUB\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\NUL\STX\DC2\EOT\203\ACK\CAN\EM\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SOH\SOH\DC2\EOT\204\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\SOH\DC2\EOT\204\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SOH\STX\DC2\EOT\204\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\STX\SOH\DC2\EOT\205\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\STX\DC2\EOT\205\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\STX\STX\DC2\EOT\205\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ETX\SOH\DC2\EOT\206\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\ETX\DC2\EOT\206\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ETX\STX\DC2\EOT\206\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\EOT\SOH\DC2\EOT\207\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\EOT\DC2\EOT\207\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\EOT\STX\DC2\EOT\207\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ENQ\SOH\DC2\EOT\208\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\ENQ\DC2\EOT\208\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ENQ\STX\DC2\EOT\208\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ACK\SOH\DC2\EOT\209\ACK\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\ACK\DC2\EOT\209\ACK\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ACK\STX\DC2\EOT\209\ACK\r\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\a\SOH\DC2\EOT\210\ACK\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\a\DC2\EOT\210\ACK\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\a\STX\DC2\EOT\210\ACK\r\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\b\SOH\DC2\EOT\211\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\b\DC2\EOT\211\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\b\STX\DC2\EOT\211\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\t\SOH\DC2\EOT\212\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\t\DC2\EOT\212\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\t\STX\DC2\EOT\212\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\n\
+    \\SOH\DC2\EOT\213\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\n\
+    \\DC2\EOT\213\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\n\
+    \\STX\DC2\EOT\213\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\v\SOH\DC2\EOT\214\ACK\STX\ETX\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\v\DC2\EOT\214\ACK\STX\t\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\v\STX\DC2\EOT\214\ACK\ACK\b\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\f\SOH\DC2\EOT\215\ACK\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\f\DC2\EOT\215\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\f\STX\DC2\EOT\215\ACK\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\r\SOH\DC2\EOT\216\ACK\STX\ENQ\n\
+    \G\n\
+    \\EOT\ENQ\a\STX\r\DC2\EOT\216\ACK\STX\v\"9 C++ (the name \"CPP\" was chosen for consistency with LSP)\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\r\STX\DC2\EOT\216\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SO\SOH\DC2\EOT\217\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\SO\DC2\EOT\217\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SO\STX\DC2\EOT\217\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SI\SOH\DC2\EOT\218\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\SI\DC2\EOT\218\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SI\STX\DC2\EOT\218\ACK\v\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DLE\SOH\DC2\EOT\219\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\DLE\DC2\EOT\219\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DLE\STX\DC2\EOT\219\ACK\f\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC1\SOH\DC2\EOT\220\ACK\STX\SO\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\DC1\DC2\EOT\220\ACK\STX\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC1\STX\DC2\EOT\220\ACK\DC1\DC3\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC2\SOH\DC2\EOT\221\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\DC2\DC2\EOT\221\ACK\STX\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC2\STX\DC2\EOT\221\ACK\SI\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC3\SOH\DC2\EOT\222\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\DC3\DC2\EOT\222\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC3\STX\DC2\EOT\222\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC4\SOH\DC2\EOT\223\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\DC4\DC2\EOT\223\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\DC4\STX\DC2\EOT\223\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\NAK\SOH\DC2\EOT\224\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\NAK\DC2\EOT\224\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\NAK\STX\DC2\EOT\224\ACK\t\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SYN\SOH\DC2\EOT\225\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\SYN\DC2\EOT\225\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SYN\STX\DC2\EOT\225\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ETB\SOH\DC2\EOT\226\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\ETB\DC2\EOT\226\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ETB\STX\DC2\EOT\226\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\CAN\SOH\DC2\EOT\227\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\CAN\DC2\EOT\227\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\CAN\STX\DC2\EOT\227\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\EM\SOH\DC2\EOT\228\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\EM\DC2\EOT\228\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\EM\STX\DC2\EOT\228\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SUB\SOH\DC2\EOT\229\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\SUB\DC2\EOT\229\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\SUB\STX\DC2\EOT\229\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ESC\SOH\DC2\EOT\230\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\ESC\DC2\EOT\230\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\ESC\STX\DC2\EOT\230\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\FS\SOH\DC2\EOT\231\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\FS\DC2\EOT\231\ACK\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\FS\STX\DC2\EOT\231\ACK\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\GS\SOH\DC2\EOT\232\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\GS\DC2\EOT\232\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\GS\STX\DC2\EOT\232\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\RS\SOH\DC2\EOT\233\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\RS\DC2\EOT\233\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\RS\STX\DC2\EOT\233\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\US\SOH\DC2\EOT\234\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\US\DC2\EOT\234\ACK\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\US\STX\DC2\EOT\234\ACK\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX \SOH\DC2\EOT\235\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX \DC2\EOT\235\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX \STX\DC2\EOT\235\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX!\SOH\DC2\EOT\236\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX!\DC2\EOT\236\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX!\STX\DC2\EOT\236\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\"\SOH\DC2\EOT\237\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\"\DC2\EOT\237\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\"\STX\DC2\EOT\237\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX#\SOH\DC2\EOT\238\ACK\STX\EOT\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX#\DC2\EOT\238\ACK\STX\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX#\STX\DC2\EOT\238\ACK\a\t\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX$\SOH\DC2\EOT\239\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX$\DC2\EOT\239\ACK\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX$\STX\DC2\EOT\239\ACK\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX%\SOH\DC2\EOT\240\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX%\DC2\EOT\240\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX%\STX\DC2\EOT\240\ACK\v\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX&\SOH\DC2\EOT\241\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX&\DC2\EOT\241\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX&\STX\DC2\EOT\241\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX'\SOH\DC2\EOT\242\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX'\DC2\EOT\242\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX'\STX\DC2\EOT\242\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX(\SOH\DC2\EOT\243\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX(\DC2\EOT\243\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX(\STX\DC2\EOT\243\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX)\SOH\DC2\EOT\244\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX)\DC2\EOT\244\ACK\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX)\STX\DC2\EOT\244\ACK\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX*\SOH\DC2\EOT\245\ACK\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX*\DC2\EOT\245\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX*\STX\DC2\EOT\245\ACK\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX+\SOH\DC2\EOT\246\ACK\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX+\DC2\EOT\246\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX+\STX\DC2\EOT\246\ACK\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX,\SOH\DC2\EOT\247\ACK\STX\ETX\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX,\DC2\EOT\247\ACK\STX\t\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX,\STX\DC2\EOT\247\ACK\ACK\b\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX-\SOH\DC2\EOT\248\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX-\DC2\EOT\248\ACK\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX-\STX\DC2\EOT\248\ACK\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX.\SOH\DC2\EOT\249\ACK\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX.\DC2\EOT\249\ACK\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX.\STX\DC2\EOT\249\ACK\t\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX/\SOH\DC2\EOT\250\ACK\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX/\DC2\EOT\250\ACK\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX/\STX\DC2\EOT\250\ACK\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX0\SOH\DC2\EOT\251\ACK\STX\DC1\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX0\DC2\EOT\251\ACK\STX\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX0\STX\DC2\EOT\251\ACK\DC4\SYN\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX1\SOH\DC2\EOT\252\ACK\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX1\DC2\EOT\252\ACK\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX1\STX\DC2\EOT\252\ACK\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX2\SOH\DC2\EOT\253\ACK\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX2\DC2\EOT\253\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX2\STX\DC2\EOT\253\ACK\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX3\SOH\DC2\EOT\254\ACK\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX3\DC2\EOT\254\ACK\STX\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX3\STX\DC2\EOT\254\ACK\r\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX4\SOH\DC2\EOT\255\ACK\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX4\DC2\EOT\255\ACK\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX4\STX\DC2\EOT\255\ACK\v\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX5\SOH\DC2\EOT\128\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX5\DC2\EOT\128\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX5\STX\DC2\EOT\128\a\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX6\SOH\DC2\EOT\129\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX6\DC2\EOT\129\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX6\STX\DC2\EOT\129\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX7\SOH\DC2\EOT\130\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX7\DC2\EOT\130\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX7\STX\DC2\EOT\130\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX8\SOH\DC2\EOT\131\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX8\DC2\EOT\131\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX8\STX\DC2\EOT\131\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX9\SOH\DC2\EOT\132\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX9\DC2\EOT\132\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX9\STX\DC2\EOT\132\a\t\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX:\SOH\DC2\EOT\133\a\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX:\DC2\EOT\133\a\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX:\STX\DC2\EOT\133\a\r\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX;\SOH\DC2\EOT\134\a\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX;\DC2\EOT\134\a\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX;\STX\DC2\EOT\134\a\r\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX<\SOH\DC2\EOT\135\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX<\DC2\EOT\135\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX<\STX\DC2\EOT\135\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX=\SOH\DC2\EOT\136\a\STX\b\n\
+    \'\n\
+    \\EOT\ENQ\a\STX=\DC2\EOT\136\a\STX\SI\"\EM https://nickel-lang.org/\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX=\STX\DC2\EOT\136\a\v\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX>\SOH\DC2\EOT\137\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX>\DC2\EOT\137\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX>\STX\DC2\EOT\137\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX?\SOH\DC2\EOT\138\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX?\DC2\EOT\138\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX?\STX\DC2\EOT\138\a\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX@\SOH\DC2\EOT\139\a\STX\r\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX@\DC2\EOT\139\a\STX\DC3\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX@\STX\DC2\EOT\139\a\DLE\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXA\SOH\DC2\EOT\140\a\STX\SI\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXA\DC2\EOT\140\a\STX\NAK\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXA\STX\DC2\EOT\140\a\DC2\DC4\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXB\SOH\DC2\EOT\141\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXB\DC2\EOT\141\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXB\STX\DC2\EOT\141\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXC\SOH\DC2\EOT\142\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXC\DC2\EOT\142\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXC\STX\DC2\EOT\142\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXD\SOH\DC2\EOT\143\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXD\DC2\EOT\143\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXD\STX\DC2\EOT\143\a\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXE\SOH\DC2\EOT\144\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXE\DC2\EOT\144\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXE\STX\DC2\EOT\144\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXF\SOH\DC2\EOT\145\a\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXF\DC2\EOT\145\a\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXF\STX\DC2\EOT\145\a\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXG\SOH\DC2\EOT\146\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXG\DC2\EOT\146\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXG\STX\DC2\EOT\146\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXH\SOH\DC2\EOT\147\a\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXH\DC2\EOT\147\a\STX\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXH\STX\DC2\EOT\147\a\r\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXI\SOH\DC2\EOT\148\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXI\DC2\EOT\148\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXI\STX\DC2\EOT\148\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXJ\SOH\DC2\EOT\149\a\STX\ETX\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXJ\DC2\EOT\149\a\STX\t\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXJ\STX\DC2\EOT\149\a\ACK\b\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXK\SOH\DC2\EOT\150\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXK\DC2\EOT\150\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXK\STX\DC2\EOT\150\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXL\SOH\DC2\EOT\151\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXL\DC2\EOT\151\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXL\STX\DC2\EOT\151\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXM\SOH\DC2\EOT\152\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXM\DC2\EOT\152\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXM\STX\DC2\EOT\152\a\n\
+    \\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXN\SOH\DC2\EOT\153\a\STX\a\n\
+    \1\n\
+    \\EOT\ENQ\a\STXN\DC2\EOT\153\a\STX\SO\"# Internal language for testing SCIP\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXN\STX\DC2\EOT\153\a\n\
+    \\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXO\SOH\DC2\EOT\154\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXO\DC2\EOT\154\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXO\STX\DC2\EOT\154\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXP\SOH\DC2\EOT\155\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXP\DC2\EOT\155\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXP\STX\DC2\EOT\155\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXQ\SOH\DC2\EOT\156\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXQ\DC2\EOT\156\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXQ\STX\DC2\EOT\156\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXR\SOH\DC2\EOT\157\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXR\DC2\EOT\157\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXR\STX\DC2\EOT\157\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXS\SOH\DC2\EOT\158\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXS\DC2\EOT\158\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXS\STX\DC2\EOT\158\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXT\SOH\DC2\EOT\159\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXT\DC2\EOT\159\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXT\STX\DC2\EOT\159\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXU\SOH\DC2\EOT\160\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXU\DC2\EOT\160\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXU\STX\DC2\EOT\160\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXV\SOH\DC2\EOT\161\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXV\DC2\EOT\161\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXV\STX\DC2\EOT\161\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXW\SOH\DC2\EOT\162\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXW\DC2\EOT\162\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXW\STX\DC2\EOT\162\a\n\
+    \\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXX\SOH\DC2\EOT\163\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXX\DC2\EOT\163\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXX\STX\DC2\EOT\163\a\v\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXY\SOH\DC2\EOT\164\a\STX\r\n\
+    \\DC3\n\
+    \\EOT\ENQ\a\STXY\DC2\EOT\164\a\STX\DC3\"\ENQ Bash\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXY\STX\DC2\EOT\164\a\DLE\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXZ\SOH\DC2\EOT\165\a\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXZ\DC2\EOT\165\a\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXZ\STX\DC2\EOT\165\a\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX[\SOH\DC2\EOT\166\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX[\DC2\EOT\166\a\STX\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX[\STX\DC2\EOT\166\a\n\
+    \\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\\\SOH\DC2\EOT\167\a\STX\n\
+    \\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX\\\DC2\EOT\167\a\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX\\\STX\DC2\EOT\167\a\r\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX]\SOH\DC2\EOT\168\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX]\DC2\EOT\168\a\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX]\STX\DC2\EOT\168\a\v\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX^\SOH\DC2\EOT\169\a\STX\a\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX^\DC2\EOT\169\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX^\STX\DC2\EOT\169\a\n\
+    \\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX_\SOH\DC2\EOT\170\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX_\DC2\EOT\170\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX_\STX\DC2\EOT\170\a\b\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX`\SOH\DC2\EOT\171\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STX`\DC2\EOT\171\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STX`\STX\DC2\EOT\171\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXa\SOH\DC2\EOT\172\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXa\DC2\EOT\172\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXa\STX\DC2\EOT\172\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXb\SOH\DC2\EOT\173\a\STX\b\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXb\DC2\EOT\173\a\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXb\STX\DC2\EOT\173\a\v\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXc\SOH\DC2\EOT\174\a\STX\f\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXc\DC2\EOT\174\a\STX\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXc\STX\DC2\EOT\174\a\SI\DC1\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXd\SOH\DC2\EOT\175\a\STX\DC1\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXd\DC2\EOT\175\a\STX\ETB\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXd\STX\DC2\EOT\175\a\DC4\SYN\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXe\SOH\DC2\EOT\176\a\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXe\DC2\EOT\176\a\STX\DLE\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXe\STX\DC2\EOT\176\a\f\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXf\SOH\DC2\EOT\177\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXf\DC2\EOT\177\a\STX\r\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXf\STX\DC2\EOT\177\a\t\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXg\SOH\DC2\EOT\178\a\STX\r\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXg\DC2\EOT\178\a\STX\DC3\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXg\STX\DC2\EOT\178\a\DLE\DC2\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXh\SOH\DC2\EOT\179\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXh\DC2\EOT\179\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXh\STX\DC2\EOT\179\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXi\SOH\DC2\EOT\180\a\STX\t\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXi\DC2\EOT\180\a\STX\SI\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXi\STX\DC2\EOT\180\a\f\SO\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXj\SOH\DC2\EOT\181\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXj\DC2\EOT\181\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXj\STX\DC2\EOT\181\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXk\SOH\DC2\EOT\182\a\STX\ENQ\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXk\DC2\EOT\182\a\STX\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXk\STX\DC2\EOT\182\a\b\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXl\SOH\DC2\EOT\183\a\STX\ACK\n\
+    \\f\n\
+    \\EOT\ENQ\a\STXl\DC2\EOT\183\a\STX\f\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXl\STX\DC2\EOT\183\a\t\v\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXm\SOH\DC2\EOT\184\a\STX\ENQ\n\
+    \\147\ETX\n\
+    \\EOT\ENQ\a\STXm\DC2\EOT\184\a\STX\v\"\132\ETX NextLanguage = 111;\n\
+    \ Steps add a new language:\n\
+    \ 1. Copy-paste the \"NextLanguage = N\" line above\n\
+    \ 2. Increment \"NextLanguage = N\" to \"NextLanguage = N+1\"\n\
+    \ 3. Replace \"NextLanguage = N\" with the name of the new language.\n\
+    \ 4. Move the new language to the correct line above using alphabetical order\n\
+    \ 5. (optional) Add a brief comment behind the language if the name is not self-explanatory\n\
+    \\n\
+    \\r\n\
+    \\ENQ\ENQ\a\STXm\STX\DC2\EOT\184\a\b\n\
     \b\ACKproto3"
diff --git a/src/Proto/Scip_Fields.hs b/src/Proto/Scip_Fields.hs
--- a/src/Proto/Scip_Fields.hs
+++ b/src/Proto/Scip_Fields.hs
@@ -86,6 +86,17 @@
    Data.ProtoLens.Field.HasField s "enclosingSymbol" a) =>
   Lens.Family2.LensLike' f s a
 enclosingSymbol = Data.ProtoLens.Field.field @"enclosingSymbol"
+endCharacter ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "endCharacter" a) =>
+  Lens.Family2.LensLike' f s a
+endCharacter = Data.ProtoLens.Field.field @"endCharacter"
+endLine ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "endLine" a) =>
+  Lens.Family2.LensLike' f s a
+endLine = Data.ProtoLens.Field.field @"endLine"
 externalSymbols ::
   forall f s a.
   (Prelude.Functor f,
@@ -127,6 +138,11 @@
    Data.ProtoLens.Field.HasField s "language" a) =>
   Lens.Family2.LensLike' f s a
 language = Data.ProtoLens.Field.field @"language"
+line ::
+  forall f s a.
+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "line" a) =>
+  Lens.Family2.LensLike' f s a
+line = Data.ProtoLens.Field.field @"line"
 manager ::
   forall f s a.
   (Prelude.Functor f, Data.ProtoLens.Field.HasField s "manager" a) =>
@@ -138,6 +154,20 @@
    Data.ProtoLens.Field.HasField s "maybe'metadata" a) =>
   Lens.Family2.LensLike' f s a
 maybe'metadata = Data.ProtoLens.Field.field @"maybe'metadata"
+maybe'multiLineEnclosingRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'multiLineEnclosingRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'multiLineEnclosingRange
+  = Data.ProtoLens.Field.field @"maybe'multiLineEnclosingRange"
+maybe'multiLineRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'multiLineRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'multiLineRange
+  = Data.ProtoLens.Field.field @"maybe'multiLineRange"
 maybe'package ::
   forall f s a.
   (Prelude.Functor f,
@@ -151,12 +181,39 @@
   Lens.Family2.LensLike' f s a
 maybe'signatureDocumentation
   = Data.ProtoLens.Field.field @"maybe'signatureDocumentation"
+maybe'singleLineEnclosingRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'singleLineEnclosingRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'singleLineEnclosingRange
+  = Data.ProtoLens.Field.field @"maybe'singleLineEnclosingRange"
+maybe'singleLineRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'singleLineRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'singleLineRange
+  = Data.ProtoLens.Field.field @"maybe'singleLineRange"
 maybe'toolInfo ::
   forall f s a.
   (Prelude.Functor f,
    Data.ProtoLens.Field.HasField s "maybe'toolInfo" a) =>
   Lens.Family2.LensLike' f s a
 maybe'toolInfo = Data.ProtoLens.Field.field @"maybe'toolInfo"
+maybe'typedEnclosingRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'typedEnclosingRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'typedEnclosingRange
+  = Data.ProtoLens.Field.field @"maybe'typedEnclosingRange"
+maybe'typedRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "maybe'typedRange" a) =>
+  Lens.Family2.LensLike' f s a
+maybe'typedRange = Data.ProtoLens.Field.field @"maybe'typedRange"
 message ::
   forall f s a.
   (Prelude.Functor f, Data.ProtoLens.Field.HasField s "message" a) =>
@@ -168,6 +225,19 @@
    Data.ProtoLens.Field.HasField s "metadata" a) =>
   Lens.Family2.LensLike' f s a
 metadata = Data.ProtoLens.Field.field @"metadata"
+multiLineEnclosingRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "multiLineEnclosingRange" a) =>
+  Lens.Family2.LensLike' f s a
+multiLineEnclosingRange
+  = Data.ProtoLens.Field.field @"multiLineEnclosingRange"
+multiLineRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "multiLineRange" a) =>
+  Lens.Family2.LensLike' f s a
+multiLineRange = Data.ProtoLens.Field.field @"multiLineRange"
 name ::
   forall f s a.
   (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>
@@ -238,11 +308,36 @@
   Lens.Family2.LensLike' f s a
 signatureDocumentation
   = Data.ProtoLens.Field.field @"signatureDocumentation"
+singleLineEnclosingRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "singleLineEnclosingRange" a) =>
+  Lens.Family2.LensLike' f s a
+singleLineEnclosingRange
+  = Data.ProtoLens.Field.field @"singleLineEnclosingRange"
+singleLineRange ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "singleLineRange" a) =>
+  Lens.Family2.LensLike' f s a
+singleLineRange = Data.ProtoLens.Field.field @"singleLineRange"
 source ::
   forall f s a.
   (Prelude.Functor f, Data.ProtoLens.Field.HasField s "source" a) =>
   Lens.Family2.LensLike' f s a
 source = Data.ProtoLens.Field.field @"source"
+startCharacter ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "startCharacter" a) =>
+  Lens.Family2.LensLike' f s a
+startCharacter = Data.ProtoLens.Field.field @"startCharacter"
+startLine ::
+  forall f s a.
+  (Prelude.Functor f,
+   Data.ProtoLens.Field.HasField s "startLine" a) =>
+  Lens.Family2.LensLike' f s a
+startLine = Data.ProtoLens.Field.field @"startLine"
 suffix ::
   forall f s a.
   (Prelude.Functor f, Data.ProtoLens.Field.HasField s "suffix" a) =>
