Right now when printing source from the produced AST, indentation is not handled accordingly, this will make it a great deal easier when debugging and reading the output, and also for other people to read the output.
Simply pass along an increased indentation level for each level it recurses into something block-like.