anchor.diff:  /** index - first position in the stream where test() returns false
    */
   void check(List data, bool test(var element), int index) {
  -  Stream s=new Stream.fromIterable(data);
  -  Stream t=s.takeWhile(test);
  +  Stream s = new Stream.fromIterable(data);
  +  Stream t = s.takeWhile(test);
     asyncStart();
     int seen = -1;
  -  t.listen((value){
  +  t.listen((value) {
         seen++;
         Expect.isTrue(test(value), "test($value)");
  -      Expect.isTrue(seen<index, "seen=$seen, index=$index");
  +      Expect.isTrue(seen < index, "seen=$seen, index=$index");
         Expect.equals(data[seen], value);
       },
  -    onDone: (){
  +    onDone: () {
         Expect.equals(index, seen+1);
  -      if (index<data.length) {
  +      if (index < data.length) {
           Expect.isFalse(test(data[index]));
         }
         asyncEnd();
  
positive.code: 
  main() {
    check([], null, 0);
    check([-1,-2,-3,1,2,3-1,-2,-3], (element)=>element<0, 3);
    check([1,2,3], (element)=>true, 3);
    check([1,2,3,1], (element)=>element==1, 1);
    check([1,2,3], (element)=>false, 0);
  }
  
  
negative.code:  * returns true for the event data.
   * The stream is done when either this stream is done, or when this stream first
   * provides a value that test doesn't accept.
   * @description Checks that only first elements that passed the test are
   * returned.
   * @author kaigorodov
   */
  
  