WCL — training

A typed configuration and schema language: records, unions, interfaces, decorators, and a document model that gathers and validates structured data.

Work through the lessons in order — each builds on the previous one, and every lesson ends with exercises you can check against the expected results.

§ 1Lessons

1. Install wcl and check your first file — Get the toolchain running, write a tiny typed document, and check and evaluate it.

2. Fields, blocks, and comments — The two structural pieces every document is made of, plus how to annotate them.

3. Primitive types and literals — Numbers with width suffixes, strings and heredocs, symbols, and booleans.

4. Lists, records, and pipe-tables — The composite shapes: ordered lists, named-field records, and compact row tables.

5. Declaring types and decorators — Turn record types into an authoring vocabulary with @block, @inline, and @default.

6. The @document and gathering — How one root schema collects every block instance into a single validated document.

7. Optionals, unions, and match — Model absence with T? and none, alternatives with unions, and consume both with match.

8. Functions and higher-order patterns — Named fn items, fn literals, and the map/filter/fold trio.

9. Imports and namespaces — Split a model across files and keep independently-authored names from colliding.

10. Tooling day-to-day — The edit loop around a living document: fmt, set, diff, and the repl.

11. Capstone: schema a real config — Put it all together — vocabulary, constraints, document root, and instances for a deployment config.