anchor.diff:  import 'scope.dart';
   import 'turtle.dart';
   
  -/**
  - * Something went wrong. TODO: useful messaging
  - */
  +/// Something went wrong. TODO: useful messaging
   class InterpreterException {
     final String message;
     const InterpreterException(this.message);
   }
   
  -/**
  - * Used for OUTPUT and STOP.
  - */
  +/// Used for OUTPUT and STOP.
   class InterpreterOutputException {
     final Node result;
     const InterpreterOutputException(this.result);
  
positive.code:     return new ListNode.cons(result, tail);
    }
  
    /**
     * Entry point, evaluates [nodes] and returns result if any.
     * 
     * @return result of operator, or UNIT for command
     */
    Node evalSequence(ListNode nodes) {
      return evalSequenceInScope(nodes, globalScope);
    }
  
    /**
     * Entry point, defines [node], which must be a DefnNode.
     * 
     * @return result of operator, or UNIT for command
     */
    void define(DefnNode defn) {
      globalScope.bind(defn.name, defn);
      console.processDefined(defn.name);
    }
  
    /**
     * Evaluates all commands in [nodes].
     *
     * @return result of last command, or UNIT if `nodes' was empty
     */
    Node evalSequenceInScope(ListNode nodes, Scope scope) {
      Node result;
      while (!nodes.isNil) {
  
negative.code:     return new ListNode.cons(Primitive.UNIT, nodes);
    }
  
    /// Interprets a template.
    ///
    /// A template corresponds to a lambda (anonymous function). Example:
    ///     make "x [[x y] x + y]
    ///     apply :x [2 3]
    Node applyTemplate(ListNode fn, ListNode args, Scope scope) {
      ListNode formalParams = fn.head;
      Node body = fn.tail;
  