Skip to content

Push idiomatics into an algebraic higher-order core - #3

Merged
godofecht merged 3 commits into
mainfrom
idiomatics/algebraic-core
Aug 23, 2026
Merged

Push idiomatics into an algebraic higher-order core#3
godofecht merged 3 commits into
mainfrom
idiomatics/algebraic-core

Conversation

@godofecht

@godofecht godofecht commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Adds a maximal program that deliberately pushes the Haskell-esque side of current Flow without inventing syntax:

  • first-class function values and higher-order application;
  • escaping affine closures;
  • compose returning a closure that captures two other closures;
  • fold-map over a borrowed span;
  • pure transformation/classification core;
  • algebraic match routing instead of a flag/branch ladder;
  • scoped effects only at the observation shell.

It replaces duplicated CI program arrays with portable-programs.txt, making the portable corpus a single source of truth. maximal/algebraic_core.flow is entry #8, so the exact same source must execute through C/native and independently lower to MLIR accepted by LLVM 18 mlir-opt.

The hostile corpus exposed two general MLIR parity layers rather than being simplified: Flow #730 added spans/matches/first-class and capturing closures, and Flow #756 fixed nested exhaustive-control-flow terminator placement. Both are merged. The temporary compiler pin is removed; this PR now validates directly against current Flow main before merge.

@godofecht
godofecht force-pushed the idiomatics/algebraic-core branch from df7157c to a9d7d99 Compare August 23, 2026 13:00
@godofecht
godofecht merged commit 50263d7 into main Aug 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant