anchor.diff:      |> memo
   
     let rec collectLatest (x2ys: 'x -> Streams<'y>) (xs: Streams<'x>) =
  -    xs >>=?* function
  +    xs >>=* function
          | Nil -> nil
          | Cons (x, xs) ->
            upcast append (takeUntil xs (x2ys x)) (collectLatest x2ys xs)
   
     let rec throttle timeout xs =
  -    xs >>=?* function
  +    xs >>=* function
          | Nil -> nil
          | Cons (x, xs) -> throttleGot1 timeout xs x
     and throttleGot1 timeout xs x =
  
positive.code:   let one x = Alt.always (Cons (x, zero<_>)) :> Streams<'x>
  
    let inline memo x = Promise.Now.delayAsAlt x
    let inline (>>=?*) x f = x >>=? f |> memo
    let inline (|>>?*) x f = x |>>? f |> memo
    let inline (<|>*) x y = x <|> y |> memo
  
    let rec ofEnum (xs: IEnumerator<'x>) = memo << Job.thunk <| fun () ->
  
negative.code:           | Some y -> cons y (choose x2yO xs)
  
    let rec map x2y xs =
      xs |>>* function
         | Nil -> Nil
         | Cons (x, xs) -> Cons (x2y x, map x2y xs)
  
    let rec joinWith (join: Streams<_> -> Streams<_> -> Streams<_>)
                     (xxs: Streams<Streams<_>>) =
      xxs >>=* function
          | Nil -> nil
          | Cons (xs, xxs) -> upcast join xs (joinWith join xxs)
  
  