anchor.diff:  
       //
       [<CompiledName("SetState")>]
  -    let inline setState (state : 'State) =
  +    let inline setState (state : 'State) : Choice<unit * 'State, 'Error> =
           Choice1Of2 ((), state)
   
       //
       [<CompiledName("GetState")>]
  -    let inline getState (state : 'State) =
  +    let inline getState (state : 'State) : Choice<'State * 'State, 'Error> =
           Choice1Of2 (state, state)
   
       /// Sets an error value in the computation. The monadic equivalent of raising an exception.
  
positive.code: [<RequireQualifiedAccess; CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module ProtectedState =
      //
      [<CompiledName("Bind")>]
      let inline bind k m =
          fun state ->
          match m state with
          | Choice2Of2 error ->
              Choice2Of2 error
          | Choice1Of2 (value, state) ->
              k value state
  
      //
      [<CompiledName("LiftState")>]
      let inline liftState (stateFunc : StateFunc<'State, 'T>) : ProtectedStateFunc<'State, 'T, 'Error> =
          stateFunc >> Choice1Of2
  
      //
      [<CompiledName("LiftEither")>]
      let inline liftEither (valueOrError : Choice<'T, 'Error>) =
          match valueOrError with
          | Choice2Of2 error ->
              fun _ -> Choice2Of2 error
          | Choice1Of2 value ->
  
negative.code:         (Choice1Of2 value), state
  
      //
      [<CompiledName("LiftChoice")>]
      let inline liftChoice (choice : Choice<'T, 'Error>) : StatefulChoiceFunc<'State, 'T, 'Error> =
          fun state ->
          choice, state
  
      //
      [<CompiledName("SetState")>]
  