Repository navigation
Alias a library unit through the settings units entry - #512
Merged
Merged
Conversation
Owner
Author
This was referenced Sep 23, 2026
thebhef
force-pushed
the
task154-colour-selection
branch
from
September 23, 2026 15:43
e6af8ea to
640c31d
Compare
thebhef
force-pushed
the
task149-alias-and-override
branch
from
September 23, 2026 15:43
8223147 to
07db1a9
Compare
This was referenced Sep 23, 2026
thebhef
force-pushed
the
task149-alias-and-override
branch
from
September 23, 2026 16:46
07db1a9 to
6613b02
Compare
thebhef
force-pushed
the
task154-colour-selection
branch
from
September 23, 2026 16:46
640c31d to
47a1442
Compare
thebhef
force-pushed
the
task149-alias-and-override
branch
from
September 24, 2026 01:39
6613b02 to
fd43e98
Compare
This was referenced Sep 24, 2026
This was referenced Oct 6, 2026
Open
thebhef
marked this pull request as ready for review
October 14, 2026 21:08
Owner
Author
thebhef
changed the base branch from
task154-colour-selection
to
graphite-base/512
October 14, 2026 21:11
A name the unit library already spells is now free to take, where the composition means exactly that unit and the library spells it differently: `mph = mile / hour` — or `mph = mile-per-hour`, since one term is a composition too — names the unit the library spells `mi/h`, converts 1:1 with it, and reads `mph` wherever it appears. The table is the library's whole table now, with no hand-typed display overrides in the facade, so an alias is how a project says what its databases actually write (owner ruling, 2026-09-22). Two changes carry it. `define` reads the composition before it judges the name, and refuses a taken name only where the composition is not that very unit: same dimension, same size, and a spelling of its own that differs from the name — so `W = V * A` stays refused, the watt already reading `W` and a second identity for it buying nothing. `recognize` consults the units the user composed by name directly after the customization dict rather than after the built-in recognitions, so a database that writes `mph` gets the user's unit rather than the library's spelling of it; a name the user defined is the user speaking, exactly as a customization is. For the reviewer: moving the refusal after the composition is read means a definition that is wrong in both ways now reports the composition's fault first. Nothing else about a definition changed, and the three things an alias must do — read as the name given it, convert 1:1, and come back from a database that spells it — are pinned by tests beside the existing `LPM` ones, as is the narrowness of the exception. The phase's other deliverable, the composed-kind override reachable from the View signals panel, is deliberately not in this commit: that panel carries no math rows by design, so the criterion cannot be met without making a database-mapping surface list math signals. The finding is written up for the owner rather than implemented as a redesign nobody ruled on. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
thebhef
force-pushed
the
task149-alias-and-override
branch
from
October 14, 2026 21:19
2996faa to
021f4aa
Compare
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

A name the unit library already spells is now free to take, where the
composition means exactly that unit and the library spells it
differently:
mph = mile / hour— ormph = mile-per-hour, since oneterm is a composition too — names the unit the library spells
mi/h,converts 1:1 with it, and reads
mphwherever it appears. The table isthe library's whole table now, with no hand-typed display overrides in
the facade, so an alias is how a project says what its databases
actually write (owner ruling, 2026-09-22).
Two changes carry it.
definereads the composition before it judgesthe name, and refuses a taken name only where the composition is not
that very unit: same dimension, same size, and a spelling of its own
that differs from the name — so
W = V * Astays refused, the wattalready reading
Wand a second identity for it buying nothing.recognizeconsults the units the user composed by name directly afterthe customization dict rather than after the built-in recognitions, so
a database that writes
mphgets the user's unit rather than thelibrary's spelling of it; a name the user defined is the user speaking,
exactly as a customization is.
For the reviewer: moving the refusal after the composition is read
means a definition that is wrong in both ways now reports the
composition's fault first. Nothing else about a definition changed, and
the three things an alias must do — read as the name given it, convert
1:1, and come back from a database that spells it — are pinned by tests
beside the existing
LPMones, as is the narrowness of the exception.The phase's other deliverable, the composed-kind override reachable
from the View signals panel, is deliberately not in this commit: that
panel carries no math rows by design, so the criterion cannot be met
without making a database-mapping surface list math signals. The
finding is written up for the owner rather than implemented as a
redesign nobody ruled on.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com