anchor.diff:  
       //
       [<CompiledName("BindOrFail")>]
  -    let inline bindOrFail (x : Choice<'T, string>) =
  +    let inline bindOrFail (x : Choice<'T, string>) : 'T =
           match x with
           | Choice1Of2 r -> r
           | Choice2Of2 msg ->
  
positive.code:     /// so it can be used with the ProtectedState monad.
      /// Used for functions which only need to read from the state.
      [<CompiledName("LiftReader")>]
      let inline liftReader (readerM : 'State -> 'T) : ProtectedStateFunc<'State, 'T, 'Error> =
          fun state ->
              let result = readerM state
              Choice1Of2 (result, state)
  
      //
      [<CompiledName("LiftReaderChoice")>]
      let inline liftReaderChoice (readerChoiceFunc : 'State -> Choice<'T, 'Error>) : ProtectedStateFunc<'State, 'T, 'Error> =
          fun state ->
              match readerChoiceFunc state with
              | Choice2Of2 error ->
  
negative.code:             let result = reader state
              result, state
  
      /// Applies a function to the result of a State function to transform it
      /// without affecting the current state value.
      [<CompiledName("Map")>]
      let map (mapping : 'T -> 'U) (stateFunc : StateFunc<'State, 'T>)
          : StateFunc<'State, 'U> =
  