MnL

Workspace

S · the machine steps over the real block structure — it never copies a block

C Control

E Environment

K Kontinuation

Globals

Substitution — call-by-structure

Machine

Environment

Continuation

No reduction selected

Right-click an Application block in the workspace and choose Call-by-Structure or Call-by-Value; right-click a Function to see its value.

The CSEK Machine and Lockstep tabs above run without a selection — press Load there to step the whole program.

MnL icon

MnL

Macaca nigra Language

Version 5.3.0build 050926

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

  1. 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.

  2. 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.

  3. 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.

  4. 5.0build 040726

    New visualization features, migrating to TypeScript and Blockly 12, and improved performance.

  5. 4.0build 170126

    First stable release with the windowing layout, showing call-by-structure and call-by-value semantics.

  6. 3.0build 080125

    Initial release of the MnL language to the public.

  7. 2.0build 170323

    Live type inference, and color for encoding type information.

  8. 1.0build 220920

    First stable release of the MnL language.

Save workspace

Choose a file name

Load example

This example

Your workspace already has blocks. Replace them with this example, or merge the example alongside them?