{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibhexajuhpyeg5sxjnfrv3rpkq22cttjdjnw4a4ajk7u32dfeddqq",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mknv6uvn5ju2"
  },
  "path": "/t/qxfx0-a-typed-dialogue-runtime-in-haskell-with-agda-gf-datalog-and-nix/14002#post_1",
  "publishedAt": "2026-04-29T18:58:53.000Z",
  "site": "https://discourse.haskell.org",
  "tags": [
    "GitHub - QxFx0/QxFx0: QxFx0: an alternative approach to text generation via typed semantic routing and GF-based rendering. · GitHub"
  ],
  "textContent": "Hi everyone,\n\nI want to share a small architecture write-up for a project called\nQxFx0.\n\nRepository: GitHub - QxFx0/QxFx0: QxFx0: an alternative approach to text generation via typed semantic routing and GF-based rendering. · GitHub\n\nQxFx0 is a Russian-language dialogue runtime built around typed,\nexplicit pipelines.\nThe goal is not to compete with LLM chat systems, but to explore a\ndifferent engineering approach to text generation.\n\nCurrent stack:\n\n  * SQL: canonical source for runtime schema and lexicon seeds.\n  * Haskell: main runtime and orchestration layer (routing, state\nupdates, rendering flow, CLI/HTTP).\n  * Datalog: relational inference over dialogue facts.\n  * Agda: proof-oriented/spec checks for selected invariants.\n  * GF: grammar artifacts and runtime mappings for Russian surface\nforms.\n  * Nix: reproducible toolchain/environment.\n\n\n\nCurrent flow (simplified):\n\ninput text → Haskell semantic routing → Datalog inference →\npolicy/invariant checks → Haskell AST assembly → GF-backed surface\nrendering\n\nWhat we have today is a working runtime with explicit boundaries\nbetween layers.\nWhat is still difficult is long-term maintenance of cross-language\nboundaries and generated artifacts.\n\nIf anyone has experience with similar pipelines, I would appreciate\npractical feedback, especially on:\n\n  1. AST/IDL versioning across Haskell + Agda + GF/Datalog,\n  2. keeping generated artifacts in sync as schemas evolve,\n  3. testing strategies for boundary contracts in polyglot systems.\n\n\n\nThanks.",
  "title": "QxFx0: a typed dialogue runtime in Haskell (with Agda, GF, Datalog,   and Nix)"
}