Conversation
…orb-and-contribute (Aaron 2026-05-05) Aaron 2026-05-05 verbatim, after PR #1596 verified F# UoM does not natively extend to System.Numerics.BigInteger: "but no implementation. do they need help we are good neighbors and citizens of github and our dependencies" Per memory/feedback_absorb_and_contribute_community_dependency_ discipline_2026_04_22.md: when Zeta depends on community work AND identifies a gap, contributing back is the discipline. Two contribution shapes: Option 1 (lightweight): comment on fslang-suggestions/831 surfacing Zeta's BigInteger<weight> use case as evidence-of-demand. Cost-free, citizen-move signal that the gap is felt downstream. Option 2 (heavier): RFC pre-draft for UoM-extension-to-BigInteger specifically (separate from generic-arithmetic/831), following PR 1591's pattern. Verification preconditions documented (search fslang-suggestions, fslang-design, Don Syme prior work, csharplang coordination). P3 because: - Not blocking Zeta (in-language workarounds suffice for B-0196's per-class adoption decision) - Citizenship work, not survival work - Bounded scope per option Engagement gate: only escalate IF contribution has substance -- the Prop 3.5 misattribution worked example shows premature upstream engagement on under-verified findings is itself the failure mode. Composes with B-0196, PR #1591, the absorb-and-contribute discipline memory file, and fslang-suggestions/831. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new backlog row capturing an “absorb-and-contribute” upstream-engagement plan around the F# Units-of-Measure + BigInteger gap, and updates the generated backlog index to include the new row.
Changes:
- Introduces backlog row B-0198 (P3) documenting two upstream contribution options (lightweight comment vs optional RFC pre-draft) plus engagement gates.
- Updates
docs/BACKLOG.mdto include B-0198 in the P3 list.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/backlog/P3/B-0198-fsharp-uom-biginteger-upstream-contribution-aaron-2026-05-05.md | New per-row backlog entry describing upstream contribution plan and acceptance criteria. |
| docs/BACKLOG.md | Regenerated/updated index to include the new B-0198 entry. |
…ith on B-0196 (#1596 reviewer) Two real reviewer findings: 1. MD027/no-multiple-space-blockquote at line 24:3 -- the verbatim blockquote had double-space after `>`. Reduced to single-space. The verbatim text content is preserved unchanged. 2. Bidirectional composes_with: B-0196 now lists B-0198 in its composes_with frontmatter. The edge B-0198 -> B-0196 already existed; this adds B-0196 -> B-0198 making it bidirectional per tools/backlog/README.md schema. The third "github -> GitHub in row title" reviewer thread is a false-positive: the row title contains no "github" string at all. Lowercase "github" appears only in (a) the verbatim ask: field quote (preserve as-is per witnessable-evolution), (b) the verbatim blockquote at line 23-24 (preserve as-is), (c) inside markdown URL paths like https://github.com/... (correct lowercase per URL convention). No title change needed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.
Summary
Acceptance criterion (d) of B-0196 flagged UoM-on-BigInteger compatibility as research-required. WebSearch performed 2026-05-05T07:40Z; verification result landed inline in the row.
Confirmed
F# UoM does NOT natively extend to
System.Numerics.BigInteger. Per Microsoft Learn: Units of Measure, dimensioned quantities work only on floating-point, signed integral, and decimal primitive types. Per Microsoft Learn: Basic Types,bigintis not a basic type -- abbreviation forSystem.Numerics.BigInteger, outside the F# primitive numeric set.Workarounds documented
FSharp.UMX-- phantom-type pattern for non-numeric primitives; technique generalizesImplication
B-0196 acceptance criterion (a) substrate-survey output should treat
BigInteger<weight>as requiring either (1) custom phantom-type wrapper struct (FSharp.UMX-style), (2) abandoning UoM on BigInteger paths, or (3) waiting on fslang-suggestions/831 outcome. Per the four-property hodl, option (1) most likely satisfies all four invariants.Composes with
🤖 Generated with Claude Code