PureScript resources
Polyglot, ports & preludes
A website that draws together various other work to show how PureScript can provide the "honesty" layer of state consistency across diverse runtimes, acting as a strongly-typed kind of modern-day Tcl. Incorporates my own and other people's alternative PureScript backends.
Sub-projects
-
polyglot-deploy active
Docker deployment of PureScript polyglot showcase examples on the MacMini, served via TailScale Funnel. Showcases include heavy backends: purerl-tidal (TidalCycles on Erlang/BEAM), Python backend demos. The polyglot site and library demo sites have been restructured — each library now has its own demo site. Showcase deployment needs overhauling to reflect the new structure. Definitely active.
-
PureScript backends comparison site idea
The new polyglot.purescri.pt (under umbrella 134): a site and repo arguing one thesis with machine-checked evidence — shared PureScript vocabulary (ADTs, codecs, pure logic) across a multi-runtime system eliminates the class of hard-to-find bugs where runtimes agree on a wire format but disagree on what values mean. Runtimes are harmonized to a known semantics while each retains its native strengths. Structure is three kinds of evidence, all generated by a run-everywhere harness rather than written editorially: (1) The Identical — differential programs with byte-identical output on every backend (Jurist's test-suite/run_tests.py is the seed: 422/426 vs JS); (2) The Divergent — counterexample programs with expected outputs PER backend, each divergence deliberate and documented (int32 vs Int64 vs BEAM bignum; UTF-16 vs codepoints) — counterexamples argue the thesis as strongly as parity because the divergence set is finite and curated, unlike JSON-contract polyglot systems where it is unenumerable; (3) The Native — programs that only run on one backend and that's the point (OTP supervision, DynamicalSystems.jl, DOM). Keystone demo: one shared Domain.purs compiled into all runtimes of a real pipeline (Julia computes, BEAM coordinates, browser renders); adding an ADT constructor breaks every runtime's compile at once instead of failing at runtime across a JSON boundary. Repo shape: shared/ programs/ divergences/ native/ harness/ site/ — the site rendered from harness results, every table cell a fact linking to program + outputs.
-
CE2 Scene Development done
Multi-scale visualization views (Galaxy, Solar, Module levels)
-
CE2 State Machine Refactor done
Refactoring SceneCoordinator to eliminate inconsistent state
-
Claude Code PureScript skills done
Effectively finished — turned into Claude Code skills (purescript-ecosystem, purescript-tooling etc.) aimed at AI agents rather than a website for programmers.
-
D3 Dependency Reduction done
Phase 6: remove redundant D3 dependencies from showcases
-
D3 Migration Audit done
Comprehensive audit of D3 usage across all showcases
-
Kernel Separation Phase 2 done
Continuing separation of canvas kernel from D3 kernel
-
L-Systems Visualization done
Tree structure rendering with Hylograph
-
Principled AST Design v2 done
Iteration on AST design
-
Code Explorer Evolution evolved
Vision for CE as codebase intelligence tool addressing LLM fog of war
-
Finally-Tagless AST defunct
AST design using finally-tagless pattern for extensibility
-
Type Explorer defunct
Browser tool for visualizing type relationships