Philosophy and Design Boundaries

Lispex stays small, predictable, and inspectable. One place decides what a program means, exclusions are stated openly, and evidence never claims more than it observed.

Five choices shape the language

  1. Determinism is language identity. The same input always gives the same answer, and that is part of what Lispex is rather than a habit of one machine. Evaluation order, how values are printed, diagnostics, and declared resource outcomes all belong to the contract.
  2. Unsupported behavior fails loudly. When a feature is missing, the program that runs the rule does not go looking for names in the surrounding system and does not borrow a library from the platform.
  3. Data and effects stay separate. A rule returns a value. Files, network, time, randomness, and external actions belong to an explicit caller.
  4. Representations do not mint authority. Source, an exact image, a bundle, a receipt, and a report each answer different questions. None of them promotes itself into permission.
  5. Evidence names what it covers. A set of checked example cases or a comparison between backends supports only the programs, inputs, observations, and limits it records.

The trade-offs are intentional

Lispex choosesYou gainYou give up
one pinned profile, a fixed set of meanings for the languagerepeatable results and reviewable failuresunspecified host behavior
a compact value and procedure seta language that can be mapped and testedbroad Scheme compatibility
explicit host boundariesrules that remain portable and auditableconvenient implicit input, output, and host names
exact source identitybyte-for-byte review and transportautomatic whitespace or encoding normalization
receipts and Vouch evidence that stay inside stated limitsinspectable claims with clear failure pointsa universal proof or transferable authorization

A practical reading rule

When a feature sounds powerful, ask two questions about it. Which exact bytes does it describe, and which program ran them? And what still belongs to the calling application? Those questions explain why an image can prove exact recovery without proving where the source came from, and why a Vouch gate can report one local matching decision without authorizing a payment or deployment.

Current boundary

Lispex is Lisp-shaped, but it is not an attempt to accept every Scheme program. Scope cuts are compatibility decisions. A future backend implements the profile. It does not redefine the language by accident.

Keep going

Use Current and Deferred Scope for the exact part of the language that is covered, or Roadmap for directions that remain subordinate to these choices.

Current and Deferred Scope · Roadmap