Skip to content

[Repo] Effect-row v1 name list: define IO/Async/Partial/Throws[E]/Mut early #59

Description

@hyperpolymath

Proposal

Pin a v1 effect-name list (even if incomplete) so real migration can begin. AI.a2ml names "effect tracking" as in-scope; the concrete effect names aren't pinned, which blocks real translation.

Real translation needed (from one .res file: Main.res)

  • {IO} — standard
  • {Async} — promise-equivalent, suspend semantics
  • {Partial} — short-circuit failure (? operator on Result)
  • {Throws[E]} — typed exception (separate from Partial because it carries a type)
  • {Mut} — internal mutation (vs ambient global)
  • Plus eventually: {Random}, {Time}, {Net}

Pinning all six in v1 unblocks real translation. The effect-handler design (out-of-scope per AI.a2ml) doesn't have to be solved first; effect tracking alone gives most of the value.

Source observation

The pilot's Main.affine and Boot.affine use /{IO, Async} and would have used /{Partial} for ?-on-Result. Without pinned names every contributor invents their own.


Filed from idaptik Wave 3 pilot. See LESSONS.md and PILOT.md. Idaptik commit hyperpolymath/idaptik@aef38db.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions