anchor.diff:  
     module Diamond =
       let rec repeat n f xs = if n = 0 then xs else repeat (n-1) f (f xs)
  -    let diamond n =
  -      Seq.singleton (ints ())
  -      |> repeat n split
  -      |> repeat n join
  +    let diamond m n =
  +      Seq.singleton (ints (n+1))
  +      |> repeat m split
  +      |> repeat m join
         |> Seq.head
   
       let run m n =
         let timer = Stopwatch.StartNew ()
         let result = ref -1
  -      (diamond m
  +      (diamond m n
          |> Observable.skip n
          |> Observable.take 1).SubscribeOn(System.Reactive.Concurrency.ThreadPoolScheduler.Instance)
         |> Observable.subscribe (fun x ->
  
positive.code:     |> Seq.map (fun (xs, ys) ->
         Stream.zipWithFun (+) xs ys)
  
    let ints () = Stream.iterateFun ((+) 1) 0
  
    module Fib =
      let fibs () = Stream.fix <| fun fibs ->
  
negative.code:       printfn "fib %d = %s, took %A" n (result.ToString ()) stop
  
    module Pyramid =
      let rec pyramid m n =
        if m <= 0
        then ints (n+1)
        else let xs = pyramid (m-1) n
             let ys = pyramid (m-1) n
             Stream.zipWithFun (+) xs ys
  
      let run m n =
        let timer = Stopwatch.StartNew ()
        let result =
          pyramid m n
          |> Stream.skip (int64 n)
          |> Stream.get
          |> run
  