1: include "std"; 2: // expansion barrier 3: macro val x = 1; 4: macro proc k () 5: { 6: val yy = noexpand x + x; // x + 1 7: print noexpand x; print "+"; print x; print " -> "; print yy; endl; 8: } 9: macro x is x; // blocks x 10: { 11: val x = 2; 12: k(); 13: }; 14: