anchor.diff:  
   import 'cps_ir_nodes.dart';
   
  +/// Mixin utility class implementing string basic indentation.
  +abstract class IndentationMixin {
  +  /// The current indentation. Example usage:
  +  ///     print("${__}Indented string");
  +  String __ = "";
  +
  +  /// The indentation unit, defaulting to two spaces. May be overwritten.
  +  String _indentUnit = "  ";
  +
  +  /// Calls [f] with one more indentation level, restoring indentation context
  +  /// upon return of [f] and returning its result.
  +  dynamic _indent(Function f) {
  +    String prevIndent = __;
  +    __ += _indentUnit;
  +    var result = f();
  +    __ = prevIndent;
  +    return result;
  +  }
  +}
  +
   /// Generate a Lisp-like S-expression representation of an IR node as a string.
  -/// The representation is not pretty-printed, but it can easily be quoted and
  -/// dropped into the REPL of one's favorite Lisp or Scheme implementation to be
  -/// pretty-printed.
  -class SExpressionStringifier extends Visitor<String> {
  +class SExpressionStringifier extends Visitor<String> with IndentationMixin {
     final Map<Definition, String> names = <Definition, String>{};
   
     int _valueCounter = 0;
  
positive.code:   }
  
    String visitDeclareFunction(DeclareFunction node) {
      String function = visit(node.definition);
      String body = visit(node.body);
      return '(DeclareFunction ${node.variable.name} = $function in $body)';
    }
  
    String visitIsTrue(IsTrue node) {
  
negative.code:     String name = node.target.name;
      String cont = names[node.continuation.definition];
      String args = formatArguments(node);
      return '$__(InvokeStatic $name $args $cont)';
    }
  
    String visitInvokeMethod(InvokeMethod node) {
  