anchor.diff:  library kernel.interpreter;
   
   import '../ast.dart';
  +import '../ast.dart' as ast show Class;
   
   class NotImplemented {
     String message;
  
positive.code: }
  
  class ObjectValue extends Value {
    ClassDeclaration classDeclaration;
    List<Value> fields;
    Object get value => this;
  
    ObjectValue(this.classDeclaration, this.fields);
  }
  
  abstract class LiteralValue extends Value {
    ClassDeclaration get classDeclaration =>
        notImplemented(m: "Loading class for literal is not implemented.");
    List<Value> get fields =>
        notImplemented(m: "Literal value does not have fields");
  
negative.code: 
    List<Procedure> methods = <Procedure>[];
  
    int get instanceSize => instanceFields.length;
  
    factory Class(Reference classRef) {
      return _classes.putIfAbsent(
          classRef, () => new Class._internal(classRef.asClass));
    }
  
    Class._internal(ast.Class currentClass) {
      if (currentClass.superclass != null) {
        superclass = new Class(currentClass.superclass.reference);
      }
  
      _populateInstanceFields(currentClass);
      // TODO: Populate methods.
    }
  
  