Skip to content

fix(stdlib): collections.affine prelude arg-order + let mut (#128)#191

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/128-collections-prelude-argorder
May 18, 2026
Merged

fix(stdlib): collections.affine prelude arg-order + let mut (#128)#191
hyperpolymath merged 1 commit into
mainfrom
fix/128-collections-prelude-argorder

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

collections.affine imported filter/map/range/any from prelude but called filter/map pred-first while prelude is list-first (arr, pred)Unify (Array, (_->Bool)); and re-imported any/range which it also defines locally with a (pred, list) signature.

  • import only Option/Some/None/filter/map (local any/range win)

  • flip filter/map call sites to prelude list-first order (inner local any kept pred-first)

  • reassigned accumulators → let mut

  • stdlib 17 → 18/19 — only option.affine remains

  • dune test 233/233, zero regression

Refs #128

collections.affine imported filter/map/range/any from prelude but
(a) called filter/map pred-first while prelude is list-first
(arr, pred) -> Unify (Array, (_->Bool)); and (b) re-imported any/range
which it also defines locally with a (pred, list) signature -> conflict.

- import only Option/Some/None/filter/map from prelude (any/range are local)
- flip filter(...)/map(...) call sites to prelude's list-first order
  (inner local any() kept pred-first)
- declare reassigned accumulators (result, xs, bs, trues, falses, arr)
  as let mut

stdlib 17->18/19; 233/233 dune test, zero regression. Only option.affine remains.

Refs #128

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit 9513d30 into main May 18, 2026
11 of 12 checks passed
@hyperpolymath hyperpolymath deleted the fix/128-collections-prelude-argorder branch May 18, 2026 03:46
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 44 issues detected

Severity Count
🔴 Critical 12
🟠 High 21
🟡 Medium 11

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
    "type": "banned",
    "file": "AI.a2ml",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Superseded by 0-AI-MANIFEST.a2ml",
    "type": "banned",
    "file": "AI.djot",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/lib/compile.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/lib/runner.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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