anchor.diff:            using (s.GetEnumerator()) (fun ie ->
               doWhile (fun () -> ie.MoveNext()) (delay (fun () -> f ie.Current))
             )
  -        member __.Zero() = ``return`` ()
  +        member __.Zero() = result ()
   
       ///The workflow function for generators, e.g. gen { ... }
       let gen = GenBuilder()
  
positive.code:       if p() then
          bind m (fun _ -> doWhile p m)
        else
          ``return`` ()
  
      let private tryFinally (Gen m) handler = 
          Gen (fun n r -> try m n r finally handler ())
  
negative.code: 
      ///The workflow type for generators.
      type GenBuilder internal() =
          member __.Return(a) : Gen<_> = result a
          member __.Bind(m, k) : Gen<_> = bind m k                            
          member __.Delay(f) : Gen<_> = delay f
          member __.Combine(m1, m2) = bind m1 (fun () -> m2)
  