anchor.diff:  import 'dart:mirrors' as $dart$mirrors;
   import '../../../ceylon.language-1.1.1.dart';
   
  -class LazyIterable implements Iterable {
  +class LazyIterable extends impl$BaseIterable {
     $dart$core.int count_;
     $dart$core.Function generate; // Object(Integer)
  -  Iterable spread;
  -
  -  LazyIterable(this.count_, this.generate, this.spread) {}
  +  Iterable spread_;
  +
  +  LazyIterable(this.count_, this.generate, this.spread_) {}
   
     @$dart$core.override
     Iterator iterator()
  -    =>  new LazyIterator(count_, generate, spread);
  +    =>  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 {
  
positive.code:   Iterable follow([$dart$core.Object head])
      =>  new Tuple(head, this);
  
    // 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])
      =>  Iterable.$contains(this, element);
  
    @$dart$core.override
    Sequential sequence()
      =>  Iterable.$sequence(this);
  }
  
  //
  
negative.code:   Iterable follow([$dart$core.Object c])
      =>  new String._fromNative(c.toString() + _value);
  
    @$dart$core.override
    $dart$core.bool get empty
      =>  _value == "";
  
    // Dart runtime
  
  