From d7004c0f713471baf0cef847647881efbce6dc75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Wed, 23 Sep 2026 20:52:45 +0000 Subject: [PATCH] :memo: Clarify the duplicate-tag known issue --- development/library.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/development/library.md b/development/library.md index 05a7eb9..fc3a3f6 100644 --- a/development/library.md +++ b/development/library.md @@ -245,10 +245,13 @@ The key is a separate call because `K` is inferred from its literal argument and #### Known issue -- A member's tag must be unique across the union; two members with the same tag - collapse to a union under one handler. A tag colliding with its - stringification (`true | "true"`) is rejected by the universe gate — see - § Supported universes. +- A tag need not be unique across the union. Two members sharing one is not a + soundness hole: they select a single runtime key, so one handler receiving + their union is the only correct behavior — the key is simply not a + discriminant. The gate rejects only the distinct-value collision + (`true | "true"`), where two values share a key and `Member` can no longer + invert it; see § Supported universes. Pinned by the duplicate-tag tests in + `src/tagged-union.test.ts`. ## Primitive universe