{
  "id": 2162027,
  "title": "Opus is a minimal, statically-scoped Lisp dialect based on the semantics of f-expressions (the Kernel language)",
  "url": "https://urgent.news/2026/08/20/opus-is-a-minimal-statically-scoped-lisp-dialect-based-on-the",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-20T14:34:50.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://github.com/yaoshiu/opus"
  },
  "original_language": "en",
  "account": "Opus is a concise, statically-scoped Lisp dialect derived from f-expressions, originally designed based on the Kernel language principles. Implemented in Haskell, Opus employs Continuation-Passing Style (CPS) for control flow and compiles to WebAssembly. Its primary design objective is to reduce the language's trusted computing base (Special Forms) while enhancing expressive power through orthogonal abstraction.\n\nUnlike conventional Lisps that differentiate functions and macros, Opus integrates them into a single primitive: the operative ($vau). Environments are treated as first-class executable values within Opus. The usual eval function is conceptually replaced by applying an environment to an Abstract Syntax Tree (AST), shifting language feature responsibilities from compiler/interpreter implementation to user-land code.\n\nThe core of Opus is the operative ($vau), which differs from traditional functions by accepting unevaluated arguments and providing explicit access to the calling environment. This characteristic allows deriving standard Lisp features from first principles. For instance, a $lambda in Opus is essentially a wrapped operative that evaluates its arguments before execution.\n\nOpus naturally fosters several complex features due to its minimal ruleset. By treating environments as operatives that evaluate ASTs within their scope, it enables the creation of a hygienic module export system entirely in user-space. The prelude.op file exemplifies this, demonstrating that Opus can support mathematically safe, read-only sandboxes by redefining or removing binding capabilities within child environments.\n\nFurthermore, Opus, implemented with a CPS-based interpreter (ContT), inherently supports Proper Tail calls and First-class Continuations. For example, capturing and invoking a continuation in the REPL showcases these capabilities. To use Opus, ensure the wasm32-wasi-ghc toolchain is configured.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}