Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ created: 2026-05-09
last_updated: 2026-05-09
depends_on: [B-0358]
classification: research
decomposition: needs-decomposition
decomposition: decomposing
children: [B-0552]
Comment on lines +11 to +12

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Bump last_updated on modified backlog row

This change edits B-0359 frontmatter (decomposition/children) but leaves last_updated at 2026-05-09, which violates the backlog schema contract that last_updated is "Updated on every content edit" (tools/backlog/README.md, frontmatter fields table). Keeping a stale date makes backlog-audit/reporting surfaces unreliable when they use last_updated for recency and triage.

Useful? React with 👍 / 👎.

owners: [architect]
type: feature
tags: [type-system, probabilistic, research, language-design, bayesian]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
id: B-0552
priority: P2
status: open
title: "Probabilistic type system step 1 — Type-level computation expression for Distributions (F#)"
effort: M
created: 2026-05-16
last_updated: 2026-05-16
depends_on: [B-0358]
classification: buildable
decomposition: atomic
Comment on lines +9 to +11

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add parent linkage for decomposed child row

This child backlog row is declared as step 1 of B-0359, but its frontmatter omits parent: B-0359, leaving only the parent-side children link. That makes the decomposition graph asymmetric and breaks automation that discovers open children via each child’s parent field (see openChildrenByParent / decomposedParentBlocker in tools/backlog/autonomous-pickup.ts), so the picker cannot reliably treat the parent as blocked by this open child. Please add an explicit parent field on this row to keep parent/child semantics machine-readable.

Useful? React with 👍 / 👎.

owners: [architect]
type: feature
tags: [type-system, probabilistic, research, language-design, bayesian, fsharp]
---

# B-0552 — Probabilistic type system step 1: F# Computation Expression

## What

Decomposed from B-0359 (Probabilistic type system research arc).
This is step 1: Research Question 1 from the parent row. "Can F#'s type system express 'all returns are distributions' without a language fork? (Computation expressions + custom operators may suffice)".

## Acceptance Criteria

- [ ] Implement an F# Computation Expression builder `dist { ... }` that models a probabilistic distribution over values (using ZSet weights as the confidence primitive).
- [ ] Implement `Bind`, `Return`, `ReturnFrom` to allow monadic composition of probabilistic values.
- [ ] Provide proof-of-concept tests demonstrating that sharp types (`bool`) can be lifted into `dist { ... }` and composed without explicitly reverting to sharp conditionals.
- [ ] Determine if this approach allows enforcing `probabilistic: strict` rules at the API boundary.

## Composes with

- B-0359 (Parent research arc)
- B-0358 (bool → float API returns)
Loading