Directions for Meta-Programming