anchor.diff:  type State = {
       count: int
       asyncInProgress: bool
  +    lastKey: string option
   }
   
   type Msg =
     | AsyncIncrement
     | Increment
     | Decrement
  +  | SetLastKey of string
   
   let init () =
  -    ({ count = 0; asyncInProgress = false }, Cmd.none)
  +    ({ count = 0; asyncInProgress = false; lastKey = None }, Cmd.none)
   
   // UPDATE
   let delayedIncrement count =
  
positive.code:     }
  
  let update msg state =
    let { count = currentCount } = state
    match msg with
    | AsyncIncrement ->
      ({ state with asyncInProgress = true }, Cmd.ofAsync delayedIncrement currentCount id (fun _ -> Decrement))
    | Increment ->
      ({ state with count = currentCount + 1; asyncInProgress = false }, Cmd.none)
    | Decrement ->
      ({ state with count = currentCount - 1; asyncInProgress = false }, Cmd.none)
  
  // Subscriptions
  let subscriptions state =
      Cmd.none
  
  // rendering views with React
  open Fable.Core.JsInterop
  
negative.code: module R = Fable.Helpers.React
  
  let view state dispatch =
      let onClick msg =
          OnClick <| fun _ -> msg |> dispatch
  
      R.div []
          [ R.button [ onClick Decrement; Disabled state.asyncInProgress ] [ R.str "-" ]
            R.div [] [ R.str (string state.count) ]
            R.button [ onClick AsyncIncrement; Disabled state.asyncInProgress ] [ R.str "+" ]
            R.div [] [ (R.str <| if state.asyncInProgress then "Please wait" else "") ]
            R.div [] [ R.str (sprintf "Last Key: %s" (if state.lastKey.IsNone then "<none>" else state.lastKey.Value)) ]
          ]
  
  open Elmish.React
  open Elmish.Debug
  