Skip to content

A page for the thing that is not strictness - #26

Merged
onatozmenn merged 1 commit into
mainfrom
one-clause-two-worlds
Jul 31, 2026
Merged

A page for the thing that is not strictness#26
onatozmenn merged 1 commit into
mainfrom
one-clause-two-worlds

Conversation

@onatozmenn

Copy link
Copy Markdown
Contributor

Four of the five boxes on #14. Not closing it: there is no recording.

The landing page shows a compiler refusing a program. This shows the thing after that, which is the harder one to explain and the better argument: an effect row compiled into an import section, and a host reading it and refusing a module before any of its instructions run.

Two functions one line apart, two import listings, and the host's behaviour as the test it is. Both programs open in the playground through a share link, so the last step is somebody adding Io.save to the first one and watching the listing they just read about change.

Nothing on it was written for it

The programs are demo/read_only.deed and demo/read_write.deed. The import listings were read out of the built modules rather than typed. The five test names are the ones that pin all of it on every commit.

The version of this page I started writing had two commands on it that do not do what they show, copied straight out of demo/README.md. That is deed-lang/deed#783, fixed in deed-lang/deed#784, and the section here says what actually happens instead.

Each block is headed with the module name rather than the file name, because the comment above each function is left off here and the file is what the playground links carry.

Checked

Both share links open in the playground with the whole file in the editor. tools/check.mjs passes, 59 files. No horizontal overflow. The page is in the navigation on every other page.

Written with AI assistance.

The landing page shows a compiler refusing a program. This shows the thing
after that: an effect row compiled into an import section, and a host reading
it and refusing to run a module before any of its instructions do.

Two functions, one line apart. Two import listings. The host's behaviour as
the test it is, because a component has no `main` and there is no command to
type for it. Both programs open in the playground through a share link, so the
last step is somebody adding `Io.save` to the first one and watching the
listing they just read about change.

Nothing on the page was written for it. The programs are demo/read_only.deed
and demo/read_write.deed, the listings were read out of the built modules
rather than typed, and the five tests are the ones that pin all of it on every
commit.

The version of this page I started writing had two commands on it that do not
do what they show, copied from demo/README.md, which is deed-lang/deed#783 and
is fixed there. The heading of each block is the module name rather than the
file name, because the comment above each function is left off here and the
file is what the playground links carry.

No recording yet, which is the one box on #14 still open.

Co-authored-by: GitHub Copilot <copilot@github.com>
@onatozmenn
onatozmenn merged commit 7a3bddf into main Jul 31, 2026
1 check passed
@onatozmenn
onatozmenn deleted the one-clause-two-worlds branch July 31, 2026 14:09
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