anchor.diff:              and  ^T : (static member Zero : ^T) = 
           fold (+) (+) (fun () -> LanguagePrimitives.GenericZero) stream
   
  -    let inline length (stream : CloudStream<'T>) : Cloud<int> =
  +    let length (stream : CloudStream<'T>) : Cloud<int> =
           fold (fun acc _  -> 1 + acc) (+) (fun () -> 0) stream
   
  -    let inline toArray (stream : CloudStream<'T>) : Cloud<'T[]> =
  +    let toArray (stream : CloudStream<'T>) : Cloud<'T[]> =
           cloud {
               let! arrayCollector = 
                   fold (fun (acc : ArrayCollector<'T>) value -> acc.Add(value); acc)
  
positive.code: 
  
      // terminal functions
      let inline fold (folder : 'State -> 'T -> 'State) (combiner : 'State -> 'State -> 'State) 
                      (state : unit -> 'State) (stream : CloudStream<'T>) : Cloud<'State> =
              let collectorf () =  
                  let results = new List<'State ref>()
  
negative.code:                 stream.Apply collectorf' combiner }
  
  
      let flatMap (f : 'T -> Stream<'R>) (stream : CloudStream<'T>) : CloudStream<'R> =
          { new CloudStream<'R> with
              member self.Apply<'S> (collectorf : unit -> Collector<'R, 'S>) combiner =
                  let collector = collectorf ()
  