MnL is a block-based functional programming language. Workspaces save as JSON payloads using the .mnl extension.
Starting from Version 2, the custom Kolintang renderer uses horizontal-notch connector shapes to visually differentiate MnL syntactic categories — expressions, patterns, parameters, identifiers, types, matches, fields.
Version history
5.3.0build 050926
The Lockstep panel's substitution column is now genuinely call-by-structure: the argument's own blocks cross the substitution boundary carrying the value they computed, instead of being replaced by that value. A CbS | CbV toggle shows the erasure directly — same rules, same result, different picture.
5.2.0build 240826
The abstract machine is renamed CSEK — control, structure, environment, kontinuation — and the machine panel now names what the S is: the live block structure the machine steps over, never a copy of it. Engine semantics unchanged.
5.1.0build 210826
A legible, keyboard-operable IDE: per-block label ink, self-hosted typography, a colour-token layer, brand roles, and keyboard operation throughout, each held by its own gate.
5.0build 040726
New visualization features, migrating to TypeScript and Blockly 12, and improved performance.
4.0build 170126
First stable release with the windowing layout, showing call-by-structure and call-by-value semantics.
3.0build 080125
Initial release of the MnL language to the public.
2.0build 170323
Live type inference, and color for encoding type information.
1.0build 220920
First stable release of the MnL language.