Experiments in macro-based reflection