The Monad language. Dependent types, functional programming compiled with LLVM. Hobby project. monad-lang.org
dependent-types language compiler programming-language functional-programming

feat: Implement expand_macros pass with unquote resolution and macro application master

- Full expand_macros: walks decls expanding App(Var(Macro(name)), arg) patterns - resolve_quote: replaces unquote(arg) with arg inside quote bodies - apply_macro: peels Lam wrappers, substitutes params, resolves quotes - subst_macro: substitution without capture-avoiding rename for macro params - Integrated into type_check_module_decls pipeline - Fixed base_term ordering: application before variable to catch name! calls - Moved 'add1' and 'identity' macro tests from ignored to active - Fixed all test syntax: unquote x (not unquote(x)) per Monad application rules


+498 -27
4 changed files