anchor.diff:    Iterable follow([$dart$core.Object head])
       =>  withLeading(head);
   
  -  // bridge methods
  -  @$dart$core.override
  -  $dart$core.bool defines([$dart$core.Object index])
  -    =>  List.$defines(this, index);
  -
     @$dart$core.override
     $dart$core.bool get empty
       =>  _list.length == 0;
  -
  -  @$dart$core.override
  -  get([$dart$core.Object index])
  -    =>  List.$get(this, index);
  -
  -  @$dart$core.override
  -  getFromLast([$dart$core.int index])
  -    =>  List.$getFromLast(this, index);
  -
  -  @$dart$core.override
  -  Iterator iterator()
  -    =>  List.$iterator(this);
  -
  -  @$dart$core.override
  -  $dart$core.int get size
  -    =>  List.$get$size(this);
  -
  -  @$dart$core.override
  -  $dart$core.Object get first
  -    =>  Iterable.$get$first(this);
  -
  -  @$dart$core.override
  -  Iterable map([Callable collecting])
  -    =>  Iterable.$map(this, collecting);
  -
  -  @$dart$core.override
  -  Iterable flatMap([Callable collecting])
  -    =>  Iterable.$flatMap(this, collecting);
  -
  -  @$dart$core.override
  -  Iterable get rest
  -    =>  Iterable.$get$rest(this);
  -
  -  @$dart$core.override
  -  $dart$core.String toString()
  -    =>  Iterable.$get$string(this);
  -
  -  @$dart$core.override
  -  void each([Callable step])
  -    =>  Iterable.$each(this, step);
  -
  -  @$dart$core.override
  -  $dart$core.bool contains([$dart$core.Object element])
  -    =>  Collection.$contains(this, element);
  -
  -  @$dart$core.override
  -  Sequence sequence()
  -    =>  Sequence.$sequence(this);
   }
   
   //
  
positive.code: import 'dart:mirrors' as $dart$mirrors;
  import '../../../ceylon.language-1.1.1.dart';
  
  class LazyIterable implements Iterable {
    $dart$core.int count_;
    $dart$core.Function generate; // Object(Integer)
    Iterable spread;
  
    LazyIterable(this.count_, this.generate, this.spread) {}
  
    @$dart$core.override
    Iterator iterator()
      =>  new LazyIterator(count_, generate, spread);
  
    @$dart$core.override
    Iterable follow([$dart$core.Object head])
      // FIXME this is a terrible, non-lazy hack
      =>  new Tuple(head, this);
  
    // bridge methods
  // FIXME Generate these now!
  
    @$dart$core.override
    $dart$core.int get size
      =>  Iterable.$get$size(this);
  
    @$dart$core.override
    $dart$core.bool get empty
      =>  Iterable.$get$empty(this);
  
    @$dart$core.override
    $dart$core.Object get first
      =>  Iterable.$get$first(this);
  
    @$dart$core.override
    Iterable map([Callable collecting])
      =>  Iterable.$map(this, collecting);
  
    @$dart$core.override
    Iterable flatMap([Callable collecting])
      =>  Iterable.$flatMap(this, collecting);
  
    @$dart$core.override
    Iterable get rest
      =>  Iterable.$get$rest(this);
  
    @$dart$core.override
    $dart$core.String toString()
      =>  Iterable.$get$string(this);
  
    @$dart$core.override
    void each([Callable step])
      =>  Iterable.$each(this, step);
  
    @$dart$core.override
    $dart$core.bool contains([$dart$core.Object element])
      =>  Iterable.$contains(this, element);
  
    @$dart$core.override
    Sequential sequence()
      =>  Iterable.$sequence(this);
  }
  
  class LazyIterator implements Iterator {
  
negative.code: // Array.dart
  //
  
  class Array extends impl$BaseList {
    $dart$core.List _list;
  
    Array(Iterable elements) {
  