Add support for recursive transformers; add let*