RTTI guide

Start with the RTTI README: it says what RTTI is for, what it gives a program, and which modules make it up. This guide assumes that purpose and goes concept by concept.

The guide explains RTTI one concept per page, the way the language specification explains FunctionalScript one feature per page. The module READMEs beside the code (data, ts) say how a module works; a guide page says what a schema means and what each reader and output makes of it. Each page has a status line, the rule with its example, an Examples section describing the page's demo, a Reference to the TypeScript and JSON Schema constructs it corresponds to, and the module that implements it.

How a page is built

A page is a directory, guide/<area>/<page>/, beside the modules rather than among them, so a concept directory is never mistaken for a module. It holds the README.md, a sample.f.mjs with the page's lessons, a demo.f.mjs that runs them through schemaDemo, and a proof.f.mjs that checks the page's examples and the values its text invites the reader to type. Each area's module.f.mjs lists its pages' lessons, and the module page's demo offers them in a group per area.

Contents

● has a demo of its own, a lesson the page owns run through schemaDemo, the machinery behind the module page's demo; ○ has none, and says why; ◌ is planned and has a todo/.

Emergent Testing

Idle. Press Run to start the suite.

  • ./in-the-project/effects/proof.f.mjs
  • ./in-the-project/expression-graph/proof.f.mjs
  • ./in-the-project/media/proof.f.mjs
  • ./in-the-project/proof.f.mjs
  • ./in-the-project/protocols/proof.f.mjs
  • ./in-the-project/tooling/proof.f.mjs
  • ./outputs/data-form/proof.f.mjs
  • ./outputs/json-schema/proof.f.mjs
  • ./outputs/proof.f.mjs
  • ./outputs/typescript/proof.f.mjs
  • ./readers/errors/proof.f.mjs
  • ./readers/parse-and-validate/proof.f.mjs
  • ./readers/proof.f.mjs
  • ./schemas/arrays-and-records/proof.f.mjs
  • ./schemas/closed-containers/proof.f.mjs
  • ./schemas/constants/proof.f.mjs
  • ./schemas/open-containers/proof.f.mjs
  • ./schemas/option/proof.f.mjs
  • ./schemas/primitives/proof.f.mjs
  • ./schemas/proof.f.mjs
  • ./schemas/recursion/proof.f.mjs
  • ./schemas/unions/proof.f.mjs