anchor.diff:          | Choice2Of2 error ->
               binding error
   
  -    module List =
  -        let rec reduceBack (binding : 'T -> 'T -> Choice<'T, exn>) values =
  -            match values with
  -            | [] -> failwith "The input list shouldn't be empty"
  -            | [v] -> Choice.result v
  -            | v::vs -> 
  -                reduceBack binding vs
  -                |> Choice.bind (binding v) 
   
   (* ------------------------------------------------------------------------- *)
   (* Functions needed for OCaml compatibility. These augment or supercede      *)
  
positive.code: // Follow the naming convention of ExtCore
  [<RequireQualifiedAccess>]
  module Choice =
      (* These functions are fairly specific to this project,
         and so probably won't be included in ExtCore. *)
  
      // The Choice.failwith in ExtCore returns the error string as-is, instead of wrapping it in an exception.
      // We could modify NHol to work the same way, we'd just need to use the Choice.bindOrFail function at the call sites.
  
negative.code: 
      let fill defaultResult (value : Choice<'T, 'Error>) =
          match value with
          | Choice1Of2 result ->
              result
          | Choice2Of2 _ ->
              defaultResult
  
      let getOrFailure2 msg (value : Choice<Choice<'T, exn> * Choice<'U, exn>, exn>) =
          match value with
          | Choice1Of2 (result1, result2) ->
              (result1, result2)
          | Choice2Of2 _ ->
              (failwith msg, failwith msg) 
  
      let getOrFailure3 msg (value : Choice<Choice<'T, exn> * Choice<'U, exn> * Choice<'V, exn>, exn>) =
          match value with
          | Choice1Of2 (result1, result2, result3) ->
              (result1, result2, result3)
          | Choice2Of2 _ ->
              (failwith msg, failwith msg, failwith msg) 
  
      /// Applies the specified binding function to a choice value representing an error value
      /// (Choice2Of2). If the choice value represents a result value (Choice1Of2), the result value
  