File: .lake/packages/lean4/src/lean/Lean/Data/Lsp/LanguageFeatures.lean

full_name: Lean.Lsp.CompletionOptions.allCommitCharacters?
code: structure CompletionOptions where
  triggerCharacters?   : Option (Array String) := none
  allCommitCharacters? : Option (Array String) := none
  resolveProvider      : Bool := false
  deriving FromJson, ToJson
goal: Option (Array String)

full_name: Lean.Lsp.CompletionOptions.triggerCharacters?
code: structure CompletionOptions where
  triggerCharacters?   : Option (Array String) := none
  allCommitCharacters? : Option (Array String) := none
  resolveProvider      : Bool := false
  deriving FromJson, ToJson
goal: Option (Array String)

full_name: Lean.Lsp.CompletionOptions.resolveProvider
code: structure CompletionOptions where
  triggerCharacters?   : Option (Array String) := none
  allCommitCharacters? : Option (Array String) := none
  resolveProvider      : Bool := false
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.CompletionOptions
code: structure CompletionOptions where
  triggerCharacters?   : Option (Array String) := none
  allCommitCharacters? : Option (Array String) := none
  resolveProvider      : Bool := false
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonCompletionOptions
code: FromJson
goal: Lean.FromJson Lean.Lsp.CompletionOptions

full_name: Lean.Lsp.instToJsonCompletionOptions
code: ToJson
goal: Lean.ToJson Lean.Lsp.CompletionOptions

full_name: Lean.Lsp.CompletionItemKind.function
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.interface
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.reference
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.value
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.text
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.method
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.file
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.field
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.enumMember
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.module
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.folder
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.struct
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.color
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.variable
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.snippet
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.instDecidableEqCompletionItemKind
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: DecidableEq Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.constructor
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.class
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.unit
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.property
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.typeParameter
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.operator
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Type

full_name: Lean.Lsp.CompletionItemKind.keyword
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.constant
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.enum
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItemKind.event
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.instReprCompletionItemKind
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Repr Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.instInhabitedCompletionItemKind
code: inductive CompletionItemKind where
  | text | method | function | constructor | field
  | variable | class | interface | module | property
  | unit | value | enum | keyword | snippet
  | color | file | reference | folder | enumMember
  | constant | struct | event | operator | typeParameter
  deriving Inhabited, DecidableEq, Repr
goal: Inhabited Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.instToJsonCompletionItemKind
code: instance : ToJson CompletionItemKind 
goal: Lean.ToJson Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.instFromJsonCompletionItemKind
code: instance : FromJson CompletionItemKind 
goal: Lean.FromJson Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.InsertReplaceEdit.insert
code: structure InsertReplaceEdit where
  newText : String
  insert  : Range
  replace : Range
  deriving FromJson, ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.InsertReplaceEdit.newText
code: structure InsertReplaceEdit where
  newText : String
  insert  : Range
  replace : Range
  deriving FromJson, ToJson
goal: String

full_name: Lean.Lsp.InsertReplaceEdit
code: structure InsertReplaceEdit where
  newText : String
  insert  : Range
  replace : Range
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.InsertReplaceEdit.replace
code: structure InsertReplaceEdit where
  newText : String
  insert  : Range
  replace : Range
  deriving FromJson, ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.instFromJsonInsertReplaceEdit
code: FromJson
goal: Lean.FromJson Lean.Lsp.InsertReplaceEdit

full_name: Lean.Lsp.instToJsonInsertReplaceEdit
code: ToJson
goal: Lean.ToJson Lean.Lsp.InsertReplaceEdit

full_name: Lean.Lsp.CompletionItem
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Type

full_name: Lean.Lsp.CompletionItem.textEdit?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option Lean.Lsp.InsertReplaceEdit

full_name: Lean.Lsp.CompletionItem.sortText?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option String

full_name: Lean.Lsp.CompletionItem.data?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option Lean.Json

full_name: Lean.Lsp.CompletionItem.documentation?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option Lean.Lsp.MarkupContent

full_name: Lean.Lsp.instInhabitedCompletionItem
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Inhabited Lean.Lsp.CompletionItem

full_name: Lean.Lsp.CompletionItem.detail?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option String

full_name: Lean.Lsp.CompletionItem.kind?
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: Option Lean.Lsp.CompletionItemKind

full_name: Lean.Lsp.CompletionItem.label
code: structure CompletionItem where
  label          : String
  detail?        : Option String := none
  documentation? : Option MarkupContent := none
  kind?          : Option CompletionItemKind := none
  textEdit?      : Option InsertReplaceEdit := none
  sortText?      : Option String := none
  data?          : Option Json := none
  /-
  tags? : CompletionItemTag[]
  deprecated? : boolean
  preselect? : boolean
  filterText? : string
  insertText? : string
  insertTextFormat? : InsertTextFormat
  insertTextMode? : InsertTextMode
  additionalTextEdits? : TextEdit[]
  commitCharacters? : string[]
  command? : Command -/
  deriving FromJson, ToJson, Inhabited
goal: String

full_name: Lean.Lsp.instFromJsonCompletionItem
code: FromJson
goal: Lean.FromJson Lean.Lsp.CompletionItem

full_name: Lean.Lsp.instToJsonCompletionItem
code: ToJson
goal: Lean.ToJson Lean.Lsp.CompletionItem

full_name: Lean.Lsp.CompletionList.items
code: structure CompletionList where
  isIncomplete : Bool
  items        : Array CompletionItem
  deriving FromJson, ToJson
goal: Array Lean.Lsp.CompletionItem

full_name: Lean.Lsp.CompletionList.isIncomplete
code: structure CompletionList where
  isIncomplete : Bool
  items        : Array CompletionItem
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.CompletionList
code: structure CompletionList where
  isIncomplete : Bool
  items        : Array CompletionItem
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonCompletionList
code: FromJson
goal: Lean.FromJson Lean.Lsp.CompletionList

full_name: Lean.Lsp.instToJsonCompletionList
code: ToJson
goal: Lean.ToJson Lean.Lsp.CompletionList

full_name: Lean.Lsp.CompletionParams
code: structure CompletionParams extends TextDocumentPositionParams where
  -- context? : CompletionContext
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonCompletionParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.CompletionParams

full_name: Lean.Lsp.instToJsonCompletionParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.CompletionParams

full_name: Lean.Lsp.Hover.range?
code: structure Hover where
  /- NOTE we should also accept MarkedString/MarkedString[] here
  but they are deprecated, so maybe can get away without. -/
  contents : MarkupContent
  range?   : Option Range := none
  deriving ToJson, FromJson
goal: Option Lean.Lsp.Range

full_name: Lean.Lsp.Hover
code: structure Hover where
  /- NOTE we should also accept MarkedString/MarkedString[] here
  but they are deprecated, so maybe can get away without. -/
  contents : MarkupContent
  range?   : Option Range := none
  deriving ToJson, FromJson
goal: Type

full_name: Lean.Lsp.Hover.contents
code: structure Hover where
  /- NOTE we should also accept MarkedString/MarkedString[] here
  but they are deprecated, so maybe can get away without. -/
  contents : MarkupContent
  range?   : Option Range := none
  deriving ToJson, FromJson
goal: Lean.Lsp.MarkupContent

full_name: Lean.Lsp.instToJsonHover
code: ToJson
goal: Lean.ToJson Lean.Lsp.Hover

full_name: Lean.Lsp.instFromJsonHover
code: FromJson
goal: Lean.FromJson Lean.Lsp.Hover

full_name: Lean.Lsp.HoverParams
code: structure HoverParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonHoverParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.HoverParams

full_name: Lean.Lsp.instToJsonHoverParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.HoverParams

full_name: Lean.Lsp.DeclarationParams
code: structure DeclarationParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonDeclarationParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.DeclarationParams

full_name: Lean.Lsp.instToJsonDeclarationParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.DeclarationParams

full_name: Lean.Lsp.DefinitionParams
code: structure DefinitionParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonDefinitionParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.DefinitionParams

full_name: Lean.Lsp.instToJsonDefinitionParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.DefinitionParams

full_name: Lean.Lsp.TypeDefinitionParams
code: structure TypeDefinitionParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonTypeDefinitionParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.TypeDefinitionParams

full_name: Lean.Lsp.instToJsonTypeDefinitionParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.TypeDefinitionParams

full_name: Lean.Lsp.ReferenceContext
code: structure ReferenceContext where
  includeDeclaration : Bool
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.ReferenceContext.includeDeclaration
code: structure ReferenceContext where
  includeDeclaration : Bool
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.instFromJsonReferenceContext
code: FromJson
goal: Lean.FromJson Lean.Lsp.ReferenceContext

full_name: Lean.Lsp.instToJsonReferenceContext
code: ToJson
goal: Lean.ToJson Lean.Lsp.ReferenceContext

full_name: Lean.Lsp.ReferenceParams.context
code: structure ReferenceParams extends TextDocumentPositionParams where
  context : ReferenceContext
  deriving FromJson, ToJson
goal: Lean.Lsp.ReferenceContext

full_name: Lean.Lsp.ReferenceParams
code: structure ReferenceParams extends TextDocumentPositionParams where
  context : ReferenceContext
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonReferenceParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.ReferenceParams

full_name: Lean.Lsp.instToJsonReferenceParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.ReferenceParams

full_name: Lean.Lsp.WorkspaceSymbolParams.query
code: structure WorkspaceSymbolParams where
  query : String
  deriving FromJson, ToJson
goal: String

full_name: Lean.Lsp.WorkspaceSymbolParams
code: structure WorkspaceSymbolParams where
  query : String
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonWorkspaceSymbolParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.WorkspaceSymbolParams

full_name: Lean.Lsp.instToJsonWorkspaceSymbolParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.WorkspaceSymbolParams

full_name: Lean.Lsp.DocumentHighlightParams
code: structure DocumentHighlightParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonDocumentHighlightParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.DocumentHighlightParams

full_name: Lean.Lsp.instToJsonDocumentHighlightParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.DocumentHighlightParams

full_name: Lean.Lsp.DocumentHighlightKind.read
code: inductive DocumentHighlightKind where
  | text
  | read
  | write
goal: Lean.Lsp.DocumentHighlightKind

full_name: Lean.Lsp.DocumentHighlightKind
code: inductive DocumentHighlightKind where
  | text
  | read
  | write
goal: Type

full_name: Lean.Lsp.DocumentHighlightKind.write
code: inductive DocumentHighlightKind where
  | text
  | read
  | write
goal: Lean.Lsp.DocumentHighlightKind

full_name: Lean.Lsp.DocumentHighlightKind.text
code: inductive DocumentHighlightKind where
  | text
  | read
  | write
goal: Lean.Lsp.DocumentHighlightKind

full_name: Lean.Lsp.instToJsonDocumentHighlightKind
code: instance : ToJson DocumentHighlightKind 
goal: Lean.ToJson Lean.Lsp.DocumentHighlightKind

full_name: Lean.Lsp.DocumentHighlight.range
code: structure DocumentHighlight where
  range : Range
  kind? : Option DocumentHighlightKind := none
  deriving ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.DocumentHighlight.kind?
code: structure DocumentHighlight where
  range : Range
  kind? : Option DocumentHighlightKind := none
  deriving ToJson
goal: Option Lean.Lsp.DocumentHighlightKind

full_name: Lean.Lsp.DocumentHighlight
code: structure DocumentHighlight where
  range : Range
  kind? : Option DocumentHighlightKind := none
  deriving ToJson
goal: Type

full_name: Lean.Lsp.instToJsonDocumentHighlight
code: ToJson
goal: Lean.ToJson Lean.Lsp.DocumentHighlight

full_name: Lean.Lsp.DocumentHighlightResult
code: abbrev DocumentHighlightResult 
goal: Type

full_name: Lean.Lsp.DocumentSymbolParams
code: structure DocumentSymbolParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.DocumentSymbolParams.textDocument
code: structure DocumentSymbolParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Lean.Lsp.TextDocumentIdentifier

full_name: Lean.Lsp.instFromJsonDocumentSymbolParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.DocumentSymbolParams

full_name: Lean.Lsp.instToJsonDocumentSymbolParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.DocumentSymbolParams

full_name: Lean.Lsp.SymbolKind.string
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.number
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.constant
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.namespace
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.null
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Type

full_name: Lean.Lsp.SymbolKind.object
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.method
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.operator
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.property
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.file
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.constructor
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.function
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.module
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.struct
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.variable
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.array
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.field
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instInhabitedSymbolKind
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Inhabited Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instHashableSymbolKind
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Hashable Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.class
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.enumMember
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.interface
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.enum
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.boolean
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.typeParameter
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.key
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.event
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.SymbolKind.package
code: inductive SymbolKind where
  | file
  | module
  | namespace
  | package
  | class
  | method
  | property
  | field
  | constructor
  | enum
  | interface
  | function
  | variable
  | constant
  | string
  | number
  | boolean
  | array
  | object
  | key
  | null
  | enumMember
  | struct
  | event
  | operator
  | typeParameter
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instBEqSymbolKind
code: BEq
goal: BEq Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instFromJsonSymbolKind
code: instance : FromJson SymbolKind 
goal: Lean.FromJson Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instToJsonSymbolKind
code: instance : ToJson SymbolKind 
goal: Lean.ToJson Lean.Lsp.SymbolKind

full_name: Lean.Lsp.DocumentSymbolAux.name
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: String

full_name: Lean.Lsp.DocumentSymbolAux.range
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.DocumentSymbolAux
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.DocumentSymbolAux.selectionRange
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.DocumentSymbolAux.children?
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Option (Array Self)

full_name: Lean.Lsp.DocumentSymbolAux.kind
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.DocumentSymbolAux.detail?
code: structure DocumentSymbolAux (Self : Type) where
  name           : String
  detail?        : Option String := none
  kind           : SymbolKind
  -- tags? : Array SymbolTag
  range          : Range
  selectionRange : Range
  children?      : Option (Array Self) := none
  deriving FromJson, ToJson
goal: Option String

full_name: Lean.Lsp.instFromJsonDocumentSymbolAux
code: FromJson
goal: {Self : Type} → [inst : Lean.FromJson Self] → Lean.FromJson (Lean.Lsp.DocumentSymbolAux Self)

full_name: Lean.Lsp.instToJsonDocumentSymbolAux
code: ToJson
goal: {Self : Type} → [inst : Lean.ToJson Self] → Lean.ToJson (Lean.Lsp.DocumentSymbolAux Self)

full_name: Lean.Lsp.DocumentSymbol
code: inductive DocumentSymbol where
  | mk (sym : DocumentSymbolAux DocumentSymbol)
goal: Type

full_name: Lean.Lsp.DocumentSymbol.mk
code: inductive DocumentSymbol where
  | mk (sym : DocumentSymbolAux DocumentSymbol)
goal: Lean.Lsp.DocumentSymbol

full_name: Lean.Lsp.instToJsonDocumentSymbol
code: partial instance : ToJson DocumentSymbol 
goal: Lean.ToJson Lean.Lsp.DocumentSymbol

full_name: Lean.Lsp.instToJsonDocumentSymbol.go
code: partial instance : ToJson DocumentSymbol 
goal: Lean.Lsp.DocumentSymbol → Lean.Json

full_name: Lean.Lsp.DocumentSymbolResult.syms
code: structure DocumentSymbolResult where
  syms : Array DocumentSymbol
goal: Array Lean.Lsp.DocumentSymbol

full_name: Lean.Lsp.DocumentSymbolResult
code: structure DocumentSymbolResult where
  syms : Array DocumentSymbol
goal: Type

full_name: Lean.Lsp.instToJsonDocumentSymbolResult
code: instance : ToJson DocumentSymbolResult 
goal: Lean.ToJson Lean.Lsp.DocumentSymbolResult

full_name: Lean.Lsp.SymbolTag.deprecated
code: inductive SymbolTag where
  | deprecated
  deriving BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolTag

full_name: Lean.Lsp.instInhabitedSymbolTag
code: inductive SymbolTag where
  | deprecated
  deriving BEq, Hashable, Inhabited
goal: Inhabited Lean.Lsp.SymbolTag

full_name: Lean.Lsp.instHashableSymbolTag
code: inductive SymbolTag where
  | deprecated
  deriving BEq, Hashable, Inhabited
goal: Hashable Lean.Lsp.SymbolTag

full_name: Lean.Lsp.SymbolTag
code: inductive SymbolTag where
  | deprecated
  deriving BEq, Hashable, Inhabited
goal: Type

full_name: Lean.Lsp.instBEqSymbolTag
code: BEq
goal: BEq Lean.Lsp.SymbolTag

full_name: Lean.Lsp.instFromJsonSymbolTag
code: instance : FromJson SymbolTag 
goal: Lean.FromJson Lean.Lsp.SymbolTag

full_name: Lean.Lsp.instToJsonSymbolTag
code: instance : ToJson SymbolTag 
goal: Lean.ToJson Lean.Lsp.SymbolTag

full_name: Lean.Lsp.SymbolInformation
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.SymbolInformation.name
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: String

full_name: Lean.Lsp.SymbolInformation.tags
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: Array Lean.Lsp.SymbolTag

full_name: Lean.Lsp.SymbolInformation.containerName?
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: Option String

full_name: Lean.Lsp.SymbolInformation.location
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: Lean.Lsp.Location

full_name: Lean.Lsp.SymbolInformation.kind
code: structure SymbolInformation where
  name           : String
  kind           : SymbolKind
  tags           : Array SymbolTag := #[]
  location       : Location
  containerName? : Option String := none
  deriving FromJson, ToJson
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.instFromJsonSymbolInformation
code: FromJson
goal: Lean.FromJson Lean.Lsp.SymbolInformation

full_name: Lean.Lsp.instToJsonSymbolInformation
code: ToJson
goal: Lean.ToJson Lean.Lsp.SymbolInformation

full_name: Lean.Lsp.CallHierarchyPrepareParams
code: structure CallHierarchyPrepareParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonCallHierarchyPrepareParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyPrepareParams

full_name: Lean.Lsp.instToJsonCallHierarchyPrepareParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyPrepareParams

full_name: Lean.Lsp.instBEqCallHierarchyItem
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: BEq Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyItem.uri
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Lean.Lsp.DocumentUri

full_name: Lean.Lsp.instInhabitedCallHierarchyItem
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Inhabited Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyItem.data?
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Option Lean.Json

full_name: Lean.Lsp.CallHierarchyItem.tags?
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Option (Array Lean.Lsp.SymbolTag)

full_name: Lean.Lsp.CallHierarchyItem
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Type

full_name: Lean.Lsp.CallHierarchyItem.kind
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Lean.Lsp.SymbolKind

full_name: Lean.Lsp.CallHierarchyItem.range
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Lean.Lsp.Range

full_name: Lean.Lsp.CallHierarchyItem.selectionRange
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Lean.Lsp.Range

full_name: Lean.Lsp.CallHierarchyItem.name
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: String

full_name: Lean.Lsp.instHashableCallHierarchyItem
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Hashable Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyItem.detail?
code: structure CallHierarchyItem where
  name           : String
  kind           : SymbolKind
  tags?          : Option (Array SymbolTag) := none
  detail?        : Option String := none
  uri            : DocumentUri
  range          : Range
  selectionRange : Range
  data?          : Option Json := none
  deriving FromJson, ToJson, BEq, Hashable, Inhabited
goal: Option String

full_name: Lean.Lsp.instFromJsonCallHierarchyItem
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.instToJsonCallHierarchyItem
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyIncomingCallsParams
code: structure CallHierarchyIncomingCallsParams where
  item : CallHierarchyItem
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.CallHierarchyIncomingCallsParams.item
code: structure CallHierarchyIncomingCallsParams where
  item : CallHierarchyItem
  deriving FromJson, ToJson
goal: Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.instFromJsonCallHierarchyIncomingCallsParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyIncomingCallsParams

full_name: Lean.Lsp.instToJsonCallHierarchyIncomingCallsParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyIncomingCallsParams

full_name: Lean.Lsp.instInhabitedCallHierarchyIncomingCall
code: structure CallHierarchyIncomingCall where
  «from»     : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Inhabited Lean.Lsp.CallHierarchyIncomingCall

full_name: Lean.Lsp.CallHierarchyIncomingCall.fromRanges
code: structure CallHierarchyIncomingCall where
  «from»     : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Array Lean.Lsp.Range

full_name: Lean.Lsp.CallHierarchyIncomingCall.from
code: structure CallHierarchyIncomingCall where
  «from»     : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyIncomingCall
code: structure CallHierarchyIncomingCall where
  «from»     : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Type

full_name: Lean.Lsp.instFromJsonCallHierarchyIncomingCall
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyIncomingCall

full_name: Lean.Lsp.instToJsonCallHierarchyIncomingCall
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyIncomingCall

full_name: Lean.Lsp.CallHierarchyOutgoingCallsParams.item
code: structure CallHierarchyOutgoingCallsParams where
  item : CallHierarchyItem
  deriving FromJson, ToJson
goal: Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyOutgoingCallsParams
code: structure CallHierarchyOutgoingCallsParams where
  item : CallHierarchyItem
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonCallHierarchyOutgoingCallsParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyOutgoingCallsParams

full_name: Lean.Lsp.instToJsonCallHierarchyOutgoingCallsParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyOutgoingCallsParams

full_name: Lean.Lsp.CallHierarchyOutgoingCall.to
code: structure CallHierarchyOutgoingCall where
  to         : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Lean.Lsp.CallHierarchyItem

full_name: Lean.Lsp.CallHierarchyOutgoingCall
code: structure CallHierarchyOutgoingCall where
  to         : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Type

full_name: Lean.Lsp.instInhabitedCallHierarchyOutgoingCall
code: structure CallHierarchyOutgoingCall where
  to         : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Inhabited Lean.Lsp.CallHierarchyOutgoingCall

full_name: Lean.Lsp.CallHierarchyOutgoingCall.fromRanges
code: structure CallHierarchyOutgoingCall where
  to         : CallHierarchyItem
  fromRanges : Array Range
  deriving FromJson, ToJson, Inhabited
goal: Array Lean.Lsp.Range

full_name: Lean.Lsp.instFromJsonCallHierarchyOutgoingCall
code: FromJson
goal: Lean.FromJson Lean.Lsp.CallHierarchyOutgoingCall

full_name: Lean.Lsp.instToJsonCallHierarchyOutgoingCall
code: ToJson
goal: Lean.ToJson Lean.Lsp.CallHierarchyOutgoingCall

full_name: Lean.Lsp.SemanticTokenType.leanSorryLike
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.variable
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.decorator
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.namespace
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.regexp
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.number
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.macro
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.property
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.operator
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.interface
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.struct
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.string
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Type

full_name: Lean.Lsp.SemanticTokenType.class
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.typeParameter
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.type
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.event
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.keyword
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.modifier
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.enumMember
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.function
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.enum
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.instHashableSemanticTokenType
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Hashable Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.parameter
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.comment
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.method
code: inductive SemanticTokenType where
  -- Used by Lean
  | keyword
  | variable
  | property
  | function
  /- Other types included by default in the LSP specification.
  Not used by the Lean core, but useful to users extending the Lean server. -/
  | namespace
  | type
  | class
  | enum
  | interface
  | struct
  | typeParameter
  | parameter
  | enumMember
  | event
  | method
  | macro
  | modifier
  | comment
  | string
  | number
  | regexp
  | operator
  | decorator
  -- Extensions
  | leanSorryLike
  deriving ToJson, FromJson, BEq, Hashable
goal: Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.instToJsonSemanticTokenType
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.instFromJsonSemanticTokenType
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.instBEqSemanticTokenType
code: BEq
goal: BEq Lean.Lsp.SemanticTokenType

full_name: Lean.Lsp.SemanticTokenType.names
code: def SemanticTokenType.names : Array String 
goal: Array String

full_name: Lean.Lsp.SemanticTokenType.toNat
code: def SemanticTokenType.toNat (tokenType : SemanticTokenType) : Nat 
goal: Nat

full_name: Lean.Lsp.SemanticTokenModifier.abstract
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.declaration
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.modification
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.defaultLibrary
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.definition
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.static
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Type

full_name: Lean.Lsp.SemanticTokenModifier.readonly
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.async
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.deprecated
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.documentation
code: /--
The semantic token modifiers included by default in the LSP specification.
Not used by the Lean core, but implementing them here allows them to be
utilized by users extending the Lean server.
-/
inductive SemanticTokenModifier where
  | declaration
  | definition
  | readonly
  | static
  | deprecated
  | abstract
  | async
  | modification
  | documentation
  | defaultLibrary
  deriving ToJson, FromJson
goal: Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.instToJsonSemanticTokenModifier
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.instFromJsonSemanticTokenModifier
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokenModifier

full_name: Lean.Lsp.SemanticTokenModifier.names
code: def SemanticTokenModifier.names : Array String 
goal: Array String

full_name: Lean.Lsp.SemanticTokenModifier.toNat
code: def SemanticTokenModifier.toNat (modifier : SemanticTokenModifier) : Nat 
goal: Nat

full_name: Lean.Lsp.SemanticTokensLegend.tokenModifiers
code: structure SemanticTokensLegend where
  tokenTypes     : Array String
  tokenModifiers : Array String
  deriving FromJson, ToJson
goal: Array String

full_name: Lean.Lsp.SemanticTokensLegend.tokenTypes
code: structure SemanticTokensLegend where
  tokenTypes     : Array String
  tokenModifiers : Array String
  deriving FromJson, ToJson
goal: Array String

full_name: Lean.Lsp.SemanticTokensLegend
code: structure SemanticTokensLegend where
  tokenTypes     : Array String
  tokenModifiers : Array String
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonSemanticTokensLegend
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokensLegend

full_name: Lean.Lsp.instToJsonSemanticTokensLegend
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokensLegend

full_name: Lean.Lsp.SemanticTokensOptions
code: structure SemanticTokensOptions where
  legend : SemanticTokensLegend
  range  : Bool
  full   : Bool /- | {
    delta?: boolean;
  } -/
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.SemanticTokensOptions.full
code: structure SemanticTokensOptions where
  legend : SemanticTokensLegend
  range  : Bool
  full   : Bool /- | {
    delta?: boolean;
  } -/
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.SemanticTokensOptions.legend
code: structure SemanticTokensOptions where
  legend : SemanticTokensLegend
  range  : Bool
  full   : Bool /- | {
    delta?: boolean;
  } -/
  deriving FromJson, ToJson
goal: Lean.Lsp.SemanticTokensLegend

full_name: Lean.Lsp.SemanticTokensOptions.range
code: structure SemanticTokensOptions where
  legend : SemanticTokensLegend
  range  : Bool
  full   : Bool /- | {
    delta?: boolean;
  } -/
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.instFromJsonSemanticTokensOptions
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokensOptions

full_name: Lean.Lsp.instToJsonSemanticTokensOptions
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokensOptions

full_name: Lean.Lsp.SemanticTokensParams
code: structure SemanticTokensParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.SemanticTokensParams.textDocument
code: structure SemanticTokensParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Lean.Lsp.TextDocumentIdentifier

full_name: Lean.Lsp.instFromJsonSemanticTokensParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokensParams

full_name: Lean.Lsp.instToJsonSemanticTokensParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokensParams

full_name: Lean.Lsp.SemanticTokensRangeParams.range
code: structure SemanticTokensRangeParams where
  textDocument : TextDocumentIdentifier
  range        : Range
  deriving FromJson, ToJson
goal: Lean.Lsp.Range

full_name: Lean.Lsp.SemanticTokensRangeParams
code: structure SemanticTokensRangeParams where
  textDocument : TextDocumentIdentifier
  range        : Range
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.SemanticTokensRangeParams.textDocument
code: structure SemanticTokensRangeParams where
  textDocument : TextDocumentIdentifier
  range        : Range
  deriving FromJson, ToJson
goal: Lean.Lsp.TextDocumentIdentifier

full_name: Lean.Lsp.instFromJsonSemanticTokensRangeParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokensRangeParams

full_name: Lean.Lsp.instToJsonSemanticTokensRangeParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokensRangeParams

full_name: Lean.Lsp.SemanticTokens.data
code: structure SemanticTokens where
  resultId? : Option String := none
  data      : Array Nat
  deriving FromJson, ToJson
goal: Array Nat

full_name: Lean.Lsp.SemanticTokens
code: structure SemanticTokens where
  resultId? : Option String := none
  data      : Array Nat
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.SemanticTokens.resultId?
code: structure SemanticTokens where
  resultId? : Option String := none
  data      : Array Nat
  deriving FromJson, ToJson
goal: Option String

full_name: Lean.Lsp.instFromJsonSemanticTokens
code: FromJson
goal: Lean.FromJson Lean.Lsp.SemanticTokens

full_name: Lean.Lsp.instToJsonSemanticTokens
code: ToJson
goal: Lean.ToJson Lean.Lsp.SemanticTokens

full_name: Lean.Lsp.FoldingRangeParams.textDocument
code: structure FoldingRangeParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Lean.Lsp.TextDocumentIdentifier

full_name: Lean.Lsp.FoldingRangeParams
code: structure FoldingRangeParams where
  textDocument : TextDocumentIdentifier
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonFoldingRangeParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.FoldingRangeParams

full_name: Lean.Lsp.instToJsonFoldingRangeParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.FoldingRangeParams

full_name: Lean.Lsp.FoldingRangeKind.region
code: inductive FoldingRangeKind where
  | comment
  | imports
  | region
goal: Lean.Lsp.FoldingRangeKind

full_name: Lean.Lsp.FoldingRangeKind
code: inductive FoldingRangeKind where
  | comment
  | imports
  | region
goal: Type

full_name: Lean.Lsp.FoldingRangeKind.comment
code: inductive FoldingRangeKind where
  | comment
  | imports
  | region
goal: Lean.Lsp.FoldingRangeKind

full_name: Lean.Lsp.FoldingRangeKind.imports
code: inductive FoldingRangeKind where
  | comment
  | imports
  | region
goal: Lean.Lsp.FoldingRangeKind

full_name: Lean.Lsp.instToJsonFoldingRangeKind
code: instance : ToJson FoldingRangeKind 
goal: Lean.ToJson Lean.Lsp.FoldingRangeKind

full_name: Lean.Lsp.FoldingRange.kind?
code: structure FoldingRange where
  startLine : Nat
  endLine   : Nat
  kind?     : Option FoldingRangeKind := none
  deriving ToJson
goal: Option Lean.Lsp.FoldingRangeKind

full_name: Lean.Lsp.FoldingRange.endLine
code: structure FoldingRange where
  startLine : Nat
  endLine   : Nat
  kind?     : Option FoldingRangeKind := none
  deriving ToJson
goal: Nat

full_name: Lean.Lsp.FoldingRange
code: structure FoldingRange where
  startLine : Nat
  endLine   : Nat
  kind?     : Option FoldingRangeKind := none
  deriving ToJson
goal: Type

full_name: Lean.Lsp.FoldingRange.startLine
code: structure FoldingRange where
  startLine : Nat
  endLine   : Nat
  kind?     : Option FoldingRangeKind := none
  deriving ToJson
goal: Nat

full_name: Lean.Lsp.instToJsonFoldingRange
code: ToJson
goal: Lean.ToJson Lean.Lsp.FoldingRange

full_name: Lean.Lsp.RenameOptions
code: structure RenameOptions where
  prepareProvider : Bool := false
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.RenameOptions.prepareProvider
code: structure RenameOptions where
  prepareProvider : Bool := false
  deriving FromJson, ToJson
goal: Bool

full_name: Lean.Lsp.instFromJsonRenameOptions
code: FromJson
goal: Lean.FromJson Lean.Lsp.RenameOptions

full_name: Lean.Lsp.instToJsonRenameOptions
code: ToJson
goal: Lean.ToJson Lean.Lsp.RenameOptions

full_name: Lean.Lsp.RenameParams.newName
code: structure RenameParams extends TextDocumentPositionParams where
  newName : String
  deriving FromJson, ToJson
goal: String

full_name: Lean.Lsp.RenameParams
code: structure RenameParams extends TextDocumentPositionParams where
  newName : String
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonRenameParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.RenameParams

full_name: Lean.Lsp.instToJsonRenameParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.RenameParams

full_name: Lean.Lsp.PrepareRenameParams
code: structure PrepareRenameParams extends TextDocumentPositionParams
  deriving FromJson, ToJson
goal: Type

full_name: Lean.Lsp.instFromJsonPrepareRenameParams
code: FromJson
goal: Lean.FromJson Lean.Lsp.PrepareRenameParams

full_name: Lean.Lsp.instToJsonPrepareRenameParams
code: ToJson
goal: Lean.ToJson Lean.Lsp.PrepareRenameParams