name: cairo-macros
description: Explain Cairo declarative macros, macro hygiene, and macro vs function tradeoffs; use when a request involves writing or understanding macro definitions in Cairo.
Cairo Macros
Overview
Explain declarative (inline) macros, pattern matching, and hygiene in Cairo.
Quick Use
- Read
references/macros.mdbefore answering. - Show a small
macrodefinition with pattern and expansion. - Mention
$defsite,$callsite, andexpose!when hygiene matters.
Response Checklist
- Explain that macros expand at compile time and can take variable arguments.
- Note that macros must be defined or imported before use.
- Use match-like patterns with
$()and repetition modifiers.
Example Requests
- "How do I write an array-building macro?"
- "What are $defsite and $callsite in Cairo macros?"
- "When should I use a macro instead of a function?"