From f86d07401db837afc3d431502e334ab4d922927d Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 6 May 2026 15:51:36 +0000 Subject: [PATCH] plans: tick Phase 6 prelude + progress log (635/635) Co-Authored-By: Claude Sonnet 4.6 --- plans/haskell-on-sx.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plans/haskell-on-sx.md b/plans/haskell-on-sx.md index b0fcbf20..28d123c0 100644 --- a/plans/haskell-on-sx.md +++ b/plans/haskell-on-sx.md @@ -107,13 +107,21 @@ Key mappings: ### Phase 6 — real IO + Prelude completion - [x] Real `IO` monad backed by `perform`/`resume` - [x] `putStrLn`, `getLine`, `readFile`, `writeFile`, `print` -- [ ] Full-ish Prelude: `Maybe`, `Either`, `List` functions, `Map`-lite +- [x] Full-ish Prelude: `Maybe`, `Either`, `List` functions, `Map`-lite - [ ] Drive scoreboard toward 150+ passing ## Progress log _Newest first._ +- **2026-05-06** — Phase 6 prelude extras (635/635). `nub`, `sort`, `sortBy`, `sortOn`, + `splitAt`, `span`, `break`, `partition`, `unzip`, `tails`, `inits`, `isPrefixOf`, + `isSuffixOf`, `isInfixOf`, `intercalate`, `intersperse`, `unwords`, `unlines`, + `interactApply/interact`. SX builtins: `ord`, `isAlpha`, `isAlphaNum`, `isDigit`, + `isSpace`, `isUpper`, `isLower`, `digitToInt`, `words`, `lines`. Fixed `++` on SX + strings (`hk-list-append` now handles string concat via `str`). Unified list repr: + `--sx-to-hk--` now uses `":"/"[]"` matching `hk-mk-cons`. 47 new tests. + - **2026-05-06** — Phase 6 `getLine`/`getContents`/`readFile`/`writeFile`. `hk-force` extended: 0-arity builtins (`arity=0` dicts) are called immediately when forced, making `getLine`/`getContents` work naturally as IO actions (no arity-0 application