anchor.diff:  [<Extension>]
   type FSharpChoice =
   
  +    static member Cast (o: obj) = Choice.cast o
  +
  +    [<Extension>]
  +    static member ToFSharpOption c = Option.fromChoice c
  +
       [<Extension>]
       static member Match (c, f1: Func<_,_>, f2: Func<_,_>) =
           match c with
  
positive.code: 
  type FSharpLazy = 
      static member Create (v: _ Func) = Lazy.Create v.Invoke
      static member CreateFromValue v = Lazy.CreateFromValue v
  
negative.code: 
      [<Extension>]
      static member Ap (f: Choice<Func<_,_>, _>, x) =
          f
          |> Choice.map (fun a -> a.Invoke)
          |> Choice.ap x
  
      [<Extension>]
      static member SelectSecond (o, f: Func<_,_>) = Choice.mapSecond f.Invoke o
  
      // validation
  
  