def serve.go
import bolt@1.27.0.0/src/lsp/server.bend as Serverimport Base
import bolt@1.27.0.0/src/lsp/docs.bend as Docs
import bolt@1.27.0.0/src/lsp/transport/service.bend as T
import bolt@1.27.0.0/src/lsp/checker/answer.bend as C
import bolt@1.27.0.0/src/lsp/files/service.bend as F
import bolt@1.27.0.0/src/lsp/enc.bend as Enc
709def serve.go(
710 ~H: Type,
711 ~tr: T.Transport<H>,
712 ~fs: F.Files,
713 ~ck: C.Checker,
714 fuel: Nat,
715 h3: H,
716 ee: Enc.Enc,
717 docs: List<&2, Docs.Doc>
718) -> IO(Unit):
719 match fuel:
720 case 0n:
721 IO.pure(Unit, Unit{})
722 case 1n+f:
723 do IO<Unit>:
724 r : H & Maybe<&2, String> <- T.recv(H, tr, h3)
725 got(~H, ~tr, ~fs, ~ck, r, ee, docs, hh => e2 => dd => serve.go(~H, ~tr, ~fs, ~ck, f, hh, e2, dd))