File: .lake/packages/lean4/src/lean/Lean/Server/Rpc/RequestHandling.lean

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling.0.Lean.Server.RpcProcedure
code: private structure RpcProcedure where
  wrapper : (sessionId : UInt64) → Json → RequestM (RequestTask Json)
  deriving Inhabited
goal: Type

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling.0.Lean.Server.RpcProcedure.wrapper
code: private structure RpcProcedure where
  wrapper : (sessionId : UInt64) → Json → RequestM (RequestTask Json)
  deriving Inhabited
goal: Lean.Json → Lean.Server.RequestM (Lean.Server.RequestTask Lean.Json)

full_name: Lean.Server.instInhabitedRpcProcedure
code: private structure RpcProcedure where
  wrapper : (sessionId : UInt64) → Json → RequestM (RequestTask Json)
  deriving Inhabited
goal: Inhabited Lean.Server.RpcProcedure

full_name: Lean.Server.initFn._@..lake.packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling._hyg.34
code: builtin_initialize builtinRpcProcedures : IO.Ref (PHashMap Name RpcProcedure) ←
  IO.mkRef {}
goal: IO (IO.Ref (Lean.PHashMap Lean.Name Lean.Server.RpcProcedure))

full_name: Lean.Server.builtinRpcProcedures
code: builtin_initialize builtinRpcProcedures : IO.Ref (PHashMap Name RpcProcedure) ←
  IO.mkRef {}
goal: IO.Ref (Lean.PHashMap Lean.Name Lean.Server.RpcProcedure)

full_name: Lean.Server.initFn._@..lake.packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling._hyg.78
code: builtin_initialize userRpcProcedures : MapDeclarationExtension Name ←
  mkMapDeclarationExtension
goal: IO (Lean.MapDeclarationExtension Lean.Name)

full_name: Lean.Server.userRpcProcedures
code: builtin_initialize userRpcProcedures : MapDeclarationExtension Name ←
  mkMapDeclarationExtension
goal: Lean.MapDeclarationExtension Lean.Name

full_name: _private.«.lake».packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling.0.Lean.Server.evalRpcProcedureUnsafe
code: private unsafe def evalRpcProcedureUnsafe (env : Environment) (opts : Options) (procName : Name) :
    Except String RpcProcedure 
goal: Except String Lean.Server.RpcProcedure

full_name: Lean.Server.evalRpcProcedure
code: @[implemented_by evalRpcProcedureUnsafe]
opaque evalRpcProcedure (env : Environment) (opts : Options) (procName : Name) :
    Except String RpcProcedure
goal: Except String Lean.Server.RpcProcedure

full_name: Lean.Server.handleRpcCall
code: def handleRpcCall (p : Lsp.RpcCallParams) : RequestM (RequestTask Json) 
goal: Lean.Server.RequestM (Lean.Server.RequestTask Lean.Json)

full_name: Lean.Server.initFn._@..lake.packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling._hyg.368
code: builtin_initialize
  registerLspRequestHandler "$/lean/rpc/call" Lsp.RpcCallParams Json handleRpcCall
goal: IO Unit

full_name: Lean.Server.wrapRpcProcedure
code: def wrapRpcProcedure (method : Name) paramType respType
    [RpcEncodable paramType] [RpcEncodable respType]
    (handler : paramType → RequestM (RequestTask respType)) : RpcProcedure 
goal: Lean.Server.RpcProcedure

full_name: Lean.Server.registerBuiltinRpcProcedure
code: def registerBuiltinRpcProcedure (method : Name) paramType respType
    [RpcEncodable paramType] [RpcEncodable respType]
    (handler : paramType → RequestM (RequestTask respType)) : IO Unit 
goal: IO Unit

full_name: Lean.Server.registerRpcProcedure
code: def registerRpcProcedure (method : Name) : CoreM Unit 
goal: Lean.CoreM Unit

full_name: Lean.Server.initFn._@..lake.packages.lean4.src.lean.Lean.Server.Rpc.RequestHandling._hyg.1390
code: builtin_initialize registerBuiltinAttribute {
  name := `server_rpc_method
  descr := "Marks a function as a Lean server RPC method.
    Shorthand for `registerRpcProcedure`.
    The function must have type `α → RequestM (RequestTask β)` with
    `[RpcEncodable α]` and `[RpcEncodable β]`."
  applicationTime := AttributeApplicationTime.afterCompilation
  add := fun decl _ _ =>
    registerRpcProcedure decl
}
goal: IO Unit