Tried "shortening" my Lisp code using macros today. Ended up with a god-awful mess. Lesson hopefully learned.
bzr revert --no-backup to the rescue. : (
The SICP guys say "Use wishful thinking. Write code and use functions that you haven't written yet, that you WISH existed. Then go make those helper functions exist later." I can't seem to bring myself to write code that way. I'm always thinking in the back of my mind about the low-level details. I can't seem to break my thinking or my design into clean, separated layers. This is one of my biggest problems.