anchor.diff:          ListNode.makeList([new WordNode("foo"), fortyTwo])),
           equals(twentyOne));
     }
  -  
  +
  +  void testEvalMakeUpdate() {
  +    Node fortyTwo = new NumberNode.int(42);
  +    Map<String, Node> varMap = new Map();
  +    varMap["x"] = fortyTwo;
  +    makeInterpreter(varMap);
  +    Node seq = ListNode.makeList([
  +        Primitive.MAKE,
  +        Primitive.QUOTE, new WordNode("x"),
  +        Primitive.SUM,
  +            Primitive.THING, Primitive.QUOTE, new WordNode("x"),
  +            new NumberNode.int(1)]);
  +      expect(interpreter.evalSequence(seq), equals(Primitive.UNIT));
  +      expect(interpreter.globalScope["x"], equals(new NumberNode.int(43)));
  +  }
  +
  +  void testEvalMakeDeref() {
  +      Node fortyTwo = new NumberNode.int(42);
  +      Map<String, Node> varMap = new Map();
  +      varMap["x"] = fortyTwo;
  +      varMap["y"] = new WordNode("x");
  +      makeInterpreter(varMap);
  +      Node seq = ListNode.makeList([
  +          Primitive.MAKE,
  +          Primitive.THING, Primitive.QUOTE, new WordNode("y"),
  +          Primitive.SUM,
  +              Primitive.THING, Primitive.THING, Primitive.QUOTE, new WordNode("y"),
  +              new NumberNode.int(1)]);
  +        expect(interpreter.evalSequence(seq), equals(Primitive.UNIT));
  +        expect(interpreter.globalScope["x"], equals(new NumberNode.int(43)));
  +    }
  +
  +  void testEvalMakeDerefVariant() {
  +      Node fortyTwo = new NumberNode.int(42);
  +      Map<String, Node> varMap = new Map();
  +      varMap["x"] = fortyTwo;
  +      makeInterpreter(varMap);
  +      Node seq = ListNode.makeList([
  +          Primitive.MAKE,
  +          Primitive.QUOTE, new WordNode("y"),
  +          Primitive.QUOTE, new WordNode("x"),
  +          Primitive.MAKE,
  +          Primitive.THING, Primitive.QUOTE, new WordNode("y"),
  +          Primitive.SUM,
  +              Primitive.THING, Primitive.THING, Primitive.QUOTE, new WordNode("y"),
  +              new NumberNode.int(1)]);
  +        expect(interpreter.evalSequence(seq), equals(Primitive.UNIT));
  +        expect(interpreter.globalScope["x"], equals(new NumberNode.int(43)));
  +    }
  +
     void testEvalConcat() {
       makeInterpreter();
   
  
positive.code: 
  import "dart:math" as math;
  
  import "package:arrowlogo/interpreter.dart";
  import "package:arrowlogo/nodes.dart";
  import "package:arrowlogo/parser.dart";
  import "package:arrowlogo/scope.dart";
  
  class MockConsole {
    void receive(dynamic raw) {}
  }
  
  class InterpreterTest {
  
    Scope globalScope;
    var turtle = new Object();
    var console = new MockConsole();
    var parent = new Object();
    InterpreterImpl interpreter;
  
    InterpreterImpl makeInterpreter() {
      globalScope = new Scope(new Map());
      interpreter = new InterpreterImpl.internal(
          globalScope, parent, turtle, console);
      return interpreter;
    }
    
    InterpreterTest() {
    }
  
  
negative.code:         ListNode.makeList([Primitive.LPUT, Primitive.QUOTE, foo, barlist])),
          equals(ListNode.makeList([bar, foo])));                               
    }
  
    void testEvalOp() {
      makeInterpreter();
  
  