anchor.diff:      _natives['let'] = (Environment env, Dynamic args) {
         var inner = env.create();
         var binding = args.head;
  -      while (binding is Cons) {
  +      while (binding != null) {
           inner[binding.head.head] = eval(env, binding.head.tail.head);
           binding = binding.tail;
         }
         var result = null;
  -      var statement = args.tail;
  -      while (statement is Cons) {
  -        result = eval(inner, statement.head);
  -        statement = statement.tail;
  -      }
  -      return eval(inner, statement);
  +      var stmt = args.tail;
  +      while (stmt != null) {
  +        result = eval(inner, stmt.head);
  +        stmt = stmt.tail;
  +      }
  +      return result;
       };
       _natives['set!'] = (Environment env, Dynamic args) {
         return env[args.head] = eval(env, args.tail.head);
       };
       _natives['print'] = (Environment env, Dynamic args) {
  -      while (args is Cons) {
  +      while (args != null) {
           print(eval(env, args.head));
           args = args.tail;
         }
  
positive.code: // Copyright (c) 2012, Lukas Renggli <renggli@gmail.com>
  
  /** Collection of all native functions. */
  class Natives {
  
    static Map<String, Function> _natives;
  
    static Function find(String name) {
      if (_natives == null) {
        _natives = new Map();
        _initialize();
      }
      return _natives[name];
    }
  
    static void _initialize() {
      _basicFunctions();
      _controlStructures();
      _arithmeticMethods();
      _arithmeticComparators();
      _listOperators();
    }
  
    static void _basicFunctions() {
  
negative.code:         var inner = lambda_env.create();
          var names = lambda_args.head;
          var values = evalArgs(env, args);
          while (names != null && values != null) {
            inner[names.head] = values.head;
            names = names.tail;
            values = values.tail;
          }
          var result = null;
          var stmt = lambda_args.tail;
          while (stmt != null) {
            result = eval(inner, stmt.head);
            stmt = stmt.tail;
          }
  