Brummel
92e830e6c2
iter 23.5: prelude free fns + E2E — Eq/Ord milestone close
...
Five polymorphic prelude free fns (ne/lt/le/gt/ge) plus three E2E
fixtures: positive composition over Int/Bool/Str, user-ADT with
user-written Eq/Ord on IntBox, and Float-NoInstance with a
Float-aware diagnostic addendum cross-referencing DESIGN.md §"Float
semantics".
Two checker-side fixes were needed alongside the prelude additions,
both symmetric to the iter 23.4-prep visibility fix:
- linearity::check_module_with_visible — workspace-aware callee-mode
resolution so a Borrow-mode user fn forwarding into a prelude poly
fn (e.g. `at_most x y = not (gt x y)`) doesn't false-fire
consume-while-borrowed.
- mono::collect_mono_targets — distinguish rigid forall vars from
unbound metavars; rigid-bearing free-fn targets skip (they get
re-collected with concrete subst when the enclosing fn itself
monomorphises). Without this, a polymorphic body calling another
polymorphic free fn produced a spurious __Unit specialisation
whose body referenced compare at Unit.
Roadmap split: shipped Eq/Ord half checked, Show + print-rewire half
remains pending behind the heap-Str ABI prerequisite. DESIGN.md
§"Prelude classes" amended.
One pre-existing fixture (test_22b1_missing_method) renamed its
class method ne → tne to avoid collision with the new prelude `ne`.
Bench: check.py + cross_lang.py exit 0; compile_check.py exits 1
with one sub-ms check_ms.local_rec_capture at +26% (tolerance 25%) —
prelude-growth-related noise-band fluctuation, ratifiable per spec
§248-249 and journal Concerns.
2026-05-12 00:38:52 +02:00
..
2026-05-10 16:57:38 +02:00
2026-05-09 00:55:57 +02:00
2026-05-09 00:55:57 +02:00
2026-05-09 01:11:26 +02:00
2026-05-09 01:11:26 +02:00
2026-05-09 01:11:26 +02:00
2026-05-09 01:11:26 +02:00
2026-05-09 00:55:57 +02:00
2026-05-09 00:55:57 +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-09 01:21:15 +02:00
2026-05-09 01:21:15 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 00:06:20 +02:00
2026-05-08 18:13:43 +02:00
2026-05-10 01:03:21 +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-11 23:59:45 +02:00
2026-05-11 10:09:48 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-11 12:14:15 +02:00
2026-05-07 23:12:24 +02:00
2026-05-07 23:12:24 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +02:00
2026-05-10 22:46:51 +02:00
2026-05-07 23:31:35 +02:00
2026-05-07 23:31:35 +02:00
2026-05-10 16:25:25 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 17:45:33 +02:00
2026-05-12 00:38:52 +02:00
2026-05-12 00:38:52 +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-12 00:38:52 +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-12 00:38:52 +02:00
2026-05-07 17:45:33 +02:00
2026-05-07 14:45:35 +02:00
2026-05-11 23:59:45 +02:00
2026-05-12 00:38:52 +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-11 01:40:20 +02:00
2026-05-11 09:58:22 +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-12 00:38:52 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 23:03:10 +02:00
2026-05-08 10:25:22 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +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 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +02:00
2026-05-08 19:36:04 +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-11 01:40:20 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-12 00:38:52 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 12:40:06 +02:00
2026-05-09 18:33:01 +02:00
2026-05-10 22:35:37 +02:00
2026-05-10 22:35:37 +02:00
2026-05-09 18:51:39 +02:00
2026-05-09 21:07:58 +02:00
2026-05-10 04:54:22 +02:00
2026-05-09 17:50:29 +02:00
2026-05-09 17:45:27 +02:00
2026-05-09 18:07:52 +02:00
2026-05-09 18:07:52 +02:00
2026-05-10 22:35:37 +02:00
2026-05-09 18:51:39 +02:00
2026-05-10 22:34:30 +02:00
2026-05-09 19:07:46 +02:00
2026-05-10 22:34:30 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 17:54:20 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 21:21:33 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 19:19:44 +02:00
2026-05-09 20:59:43 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 21:36:15 +02:00
2026-05-10 04:47:50 +02:00
2026-05-09 20:52:07 +02:00
2026-05-09 21:28:41 +02:00
2026-05-09 20:52:07 +02:00
2026-05-09 21:21:33 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 21:36:15 +02:00
2026-05-09 22:41:18 +02:00
2026-05-11 01:46:58 +02:00
2026-05-11 01:46:58 +02:00
2026-05-11 01:46:58 +02:00
2026-05-10 22:16:51 +02:00
2026-05-10 22:16:51 +02:00
2026-05-10 01:19:45 +02:00
2026-05-10 01:19:45 +02:00
2026-05-10 01:06:18 +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