packages feed

scip-0.9.0: src/Proto/Scip.hs

{- This file was auto-generated from scip.proto by the proto-lens-protoc program. -}
{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}
{-# OPTIONS_GHC -Wno-unused-imports#-}
{-# OPTIONS_GHC -Wno-duplicate-exports#-}
{-# OPTIONS_GHC -Wno-dodgy-exports#-}
module Proto.Scip (
        Descriptor(), Descriptor'Suffix(..),
        Descriptor'Suffix(Descriptor'Package),
        Descriptor'Suffix'UnrecognizedValue, Diagnostic(),
        DiagnosticTag(..), DiagnosticTag(),
        DiagnosticTag'UnrecognizedValue, Document(), Index(), Language(..),
        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"