Netvrdil som, že to musí byť robené práve cez monády, hoci aj tie môžu byť užitočné. Môžeme si predstaviť trebárs "CF-monádu" obsahujúcu C-čkovské filtre a spájanie monád by v takom prípade fungovalo ako rúra. (Snáď je táto myšlienka na linuxovom fóre dostatočne zrejmá aj bez ďalšieho popisu.)
K tomu pořád ale monády nepotřebuješ. Pokud je výstupem AST, je pořadí operací jasně dané (pokud ten "cílový jazyk" - tady C - není taky čistý). Monády jsou prostě způsob, jak řadit něco, co by jinak seřadit nebylo možno. Nic víc, nic míň.
Monády bys začal potřebovat, pokud bys chtěl tím céčkem něco načítat do toho FPP. Tam by ses dostal do toho problému, který monády řeší.
Áno, veď v pôvodnom odkaze bolo práve makro, išlo predsa o C/CPP. Tento príklad si však vtedy označil za zavádzajúci, a tak sme si to trochu poobjasňovali.
No jenže makra v CPP a makra v Elixiru nebo Lispu, jsou něco dost jiného

A ta hlavní věc, co je odlišuje, je to, co jsem říkal: CPP není turingovsky úplný. V Elixiru nebo Lispu makrojazyk je úplný (protože je to sám Elixir nebo Lisp).