Metaprogramming

MakrellTS belongs in the same family-wide macro and quoting story, but the details have to be described honestly in host-specific terms.

This page should eventually cover:

  • quote and unquote support

  • macro support level

  • compile-time and serialisation strategy

  • differences from MakrellPy and Makrell#

Representative example

{def macro twice [x]
  [{quote $x} {quote $x}]}

{twice {print "hello"}}

How to read this page

MakrellTS belongs to the same family-wide macro story, but the important questions in this track are often practical and host-specific:

  • how compile-time definitions are represented

  • how macros interact with emitted JavaScript

  • how browser-oriented execution affects compile-time behaviour

  • what remains aligned with MakrellPy and Makrell#

Family alignment and differences

The family-level ideas are still recognisable:

  • code can be treated as structure

  • quoting and unquoting matter

  • macros can transform forms before runtime

But the implementation strategy can differ because the JS/TS host has different runtime, packaging, and browser constraints than Python or .NET.

How to use this page

Use this page as an orientation page for the TypeScript-side compile-time model. For concrete smaller patterns, the cookbook macro page is often the faster companion.