anchor.diff:      /// Creates a Choice representing an error value.
       /// The error value in the Choice is a new exception created with the specified message.
       [<CompiledName("FailWith")>]
  -    let inline failwith msg =
  +    let inline failwith msg : Choice<'T, exn> =
           Choice2Of2 <| exn msg
   
       /// Creates a Choice representing an error value.
  
positive.code:     /// through without modification; otherwise, if the second component of the pair represents an error
      /// value, the error is passed through without modification; otherwise, both components represent
      /// result values, which are applied to the specified binding function.
      let bind2 (binding : 'T -> 'U -> Choice<'V, 'Error>) value1 value2 =
          match value1, value2 with
          | Choice1Of2 result1, Choice1Of2 result2 ->
  
negative.code:     [<CompiledName("PrintFormatToStringThenFail")>]
      let inline failwithf (fmt : Printf.StringFormat<'T, Choice<'U, exn>>) =
          Printf.ksprintf failwith fmt
  
      //
      [<CompiledName("OfOption")>]
      let ofOption (value : 'T option) : Choice<'T, unit> =
          match value with
          | Some result ->
              Choice1Of2 result
          | None ->
              Choice2Of2 ()
  
      //
      [<CompiledName("ToOption")>]
      let toOption (value : Choice<'T, 'Error>) : 'T option =
          match value with
          | Choice1Of2 result ->
              Some result
          | Choice2Of2 _ ->
              None
  
      /// <summary>
      /// When the choice value is <c>Choice1Of2(x)</c>, returns <c>Choice1Of2 (f x)</c>.
  