What cost the most. Working out the plumbing the brief left open: how the impls’ own column gets from keeps::infer through Noted, the ProgramHost and Program to both changed_contracts and CheckWorld. Finding where the checker turns a kept lambda into NK2101 took about four reads across check_core_args, check_lambdas, check_takes and check_core_call_on. The second biggest cost was my own: I ran nikaia fmt on the touched .nika files, it rewrote them with tabs and rewrapped them, and I had to rebuild seven files from HEAD and re-apply my edits.
a_kept_lambda_takes_these → moved_into_a_task → a_task_took_what_is_used_again).nikaia.contracts on disk, so a test only has to build twice and needs no git.changed_contracts is called (project.rs → prove.rs → contract_changes.nika).newly is built with the program in scope.mut t: T, not t: ref mut T) and that a literal is never taken, so a lending test needs an owned String.Newly initialisers lacked the new field), the hand probes of (g) and (h) with a scratch binary, tests/compiler --both-settings, the it gate set, --lib, clippy and pre-push.nikaia fmt --check and fmt: the guard checks only that formatting is idempotent, not that files are formatted.--lib run whose filters lacked --, so it printed nothing.tests/compiler run just to confirm one updated .stderr, because nikaia test has no filter.a_lent_parameter_kept_by_a_trait_method_is_taken.stderr would change with the NK2101 wording, but did not update it before the first run.nikaia fmt on crates/nikaia-std/src/tools/*.nika or the tests; fmt::every_nika_file checks only idempotence.” After that, the brief naming the checker’s NK2101 path and the Newly construction sites up front.Also: the push was rejected because develop moved on, so the brief’s “pushed” condition is not met. Commit a39c219f still needs your rebase and push.