M4 by itself provides only a small, but sufficient, set of all-purpose macros. M4sugar introduces additional generic macros. Its name was coined by Lars J. Aas: “Readability And Greater Understanding Stands 4 M4sugar”.
M4sugar reserves the macro namespace ‘^_m4_’ for internal use, and the macro namespace ‘^m4_’ for M4sugar macros. You should not define your own macros into these namespaces.
|• Redefined M4 Macros||M4 builtins changed in M4sugar|
|• Diagnostic Macros||Diagnostic messages from M4sugar|
|• Diversion support||Diversions in M4sugar|
|• Conditional constructs||Conditions in M4|
|• Looping constructs||Iteration in M4|
|• Evaluation Macros||More quotation and evaluation control|
|• Text processing Macros||String manipulation in M4|
|• Number processing Macros||Arithmetic computation in M4|
|• Set manipulation Macros||Set manipulation in M4|
|• Forbidden Patterns||Catching unexpanded macros|