Brummel
a9d57c5c81
prose: human-readable projection renderer (iter 20a)
New crate ailang-prose with one public fn module_to_prose(&Module)
-> String. Rust-flavour with braces, =>-match-arms, mode keywords
(own/borrow), effects as trailing 'with IO', Cons(1, Nil) ctor
form, /// doc strings.
Lossy projection where the LLM can re-derive: (con T) wrap,
(fn-type ...) wrap, (term-ctor ...) wrap. Load-bearing semantic
detail stays visible (modes, effects, clone, reuse-as, doc strings,
type annotations, tail flag).
CLI: 'ail prose <file.ail.json>' prints the projection.
3 snapshot fixtures + 28 unit tests. 215-line .ail.json reduces
to ~18 lines of legible source.
20b queued: infix arithmetic, paren elision, let-inlining, do
prettify.
2026-05-08 18:06:16 +02:00
..
2026-05-08 14:05:03 +02:00
2026-05-08 14:05:03 +02:00
2026-05-08 14:05:03 +02:00
2026-05-08 14:05:03 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 02:07:07 +02:00
2026-05-08 02:07:07 +02:00
2026-05-07 14:45:35 +02:00
2026-05-07 15:57:24 +02:00
2026-05-07 11:07:36 +02:00
2026-05-08 02:26:12 +02:00
2026-05-08 02:26:12 +02:00
2026-05-07 13:03:20 +02:00
2026-05-07 23:12:24 +02:00
2026-05-07 23:12:24 +02:00
2026-05-07 23:31:35 +02:00
2026-05-07 23:31:35 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 12:20:18 +02:00
2026-05-07 15:57:24 +02:00
2026-05-07 12:44:10 +02:00
2026-05-07 17:16:28 +02:00
2026-05-07 17:16:28 +02:00
2026-05-07 13:14:28 +02:00
2026-05-07 10:38:07 +02:00
2026-05-07 23:00:23 +02:00
2026-05-07 23:00:23 +02:00
2026-05-07 22:27:21 +02:00
2026-05-07 22:27:21 +02:00
2026-05-07 22:27:21 +02:00
2026-05-07 22:27:21 +02:00
2026-05-07 21:00:49 +02:00
2026-05-07 21:00:49 +02:00
2026-05-07 20:33:48 +02:00
2026-05-07 20:33:48 +02:00
2026-05-07 22:07:05 +02:00
2026-05-07 22:07:05 +02:00
2026-05-07 22:16:12 +02:00
2026-05-07 22:16:12 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 14:45:35 +02:00
2026-05-07 22:48:14 +02:00
2026-05-07 22:48:14 +02:00
2026-05-07 19:10:01 +02:00
2026-05-07 19:10:01 +02:00
2026-05-08 12:18:12 +02:00
2026-05-08 12:18:12 +02:00
2026-05-07 14:10:51 +02:00
2026-05-07 14:10:51 +02:00
2026-05-07 22:39:28 +02:00
2026-05-07 22:39:28 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 18:06:16 +02:00
2026-05-08 10:25:22 +02:00
2026-05-08 12:53:09 +02:00
2026-05-08 12:53:09 +02:00
2026-05-08 15:21:40 +02:00
2026-05-08 15:21:40 +02:00
2026-05-08 14:37:36 +02:00
2026-05-08 14:37:36 +02:00
2026-05-08 14:25:07 +02:00
2026-05-08 14:25:07 +02:00
2026-05-08 10:37:25 +02:00
2026-05-08 10:37:25 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 18:06:16 +02:00
2026-05-08 12:33:48 +02:00
2026-05-08 12:33:48 +02:00
2026-05-08 18:06:16 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 16:25:40 +02:00
2026-05-08 13:56:17 +02:00
2026-05-08 13:56:17 +02:00
2026-05-08 14:18:30 +02:00
2026-05-08 14:18:30 +02:00
2026-05-08 10:55:31 +02:00
2026-05-08 10:55:31 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 18:48:43 +02:00
2026-05-07 18:48:43 +02:00
2026-05-07 19:59:42 +02:00
2026-05-07 19:59:42 +02:00
2026-05-07 19:57:06 +02:00
2026-05-07 19:57:06 +02:00
2026-05-07 18:48:43 +02:00
2026-05-07 18:48:43 +02:00
2026-05-07 18:34:49 +02:00
2026-05-07 18:34:49 +02:00
2026-05-07 20:05:45 +02:00
2026-05-07 20:05:45 +02:00
2026-05-07 18:39:16 +02:00
2026-05-07 18:39:16 +02:00
2026-05-07 20:05:45 +02:00
2026-05-07 20:05:45 +02:00
2026-05-07 18:08:56 +02:00
2026-05-07 18:08:56 +02:00
2026-05-07 18:08:56 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 19:12:23 +02:00
2026-05-07 19:12:23 +02:00
2026-05-07 19:12:23 +02:00
2026-05-07 19:12:23 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 23:00:23 +02:00
2026-05-07 23:00:23 +02:00
2026-05-07 11:31:57 +02:00
2026-05-07 11:23:21 +02:00
2026-05-07 11:31:57 +02:00
2026-05-07 11:31:57 +02:00