anchor.diff:        AuthorsErrorText = None
         ResetTime = None
         LinkErrorText = None
  -      ErrorMsg = None }, 
  +      ErrorMsg = None },
           Cmd.batch [
               loadWishListCmd user.Token
               loadResetTimeCmd user.Token ]
   
  -let update f (msg:Msg) model : Model*Cmd<'a> = 
  +let update f (msg:Msg) model : Model*Cmd<'a> =
       match msg with
       | LoadForUser user ->
           model, Cmd.none
  
positive.code:                     div [ClassName ("form-group has-feedback " + linkStatus)] [
                           yield div [ClassName "input-group"] [
                               yield span [ClassName "input-group-addon"] [span [ClassName "glyphicon glyphicon glyphicon-pencil"] [] ]
                               yield input [ 
                                      Key ("Link_" + model.NewBookId.ToString())
                                      HTMLAttr.Type "text"
                                      Name "Link"
  
negative.code:                         | None -> ()
                          | Some e -> yield p [ClassName "text-danger"][str e]
                      ]
                  ]
              ]
          ]
      ]
  
  type [<Pojo>] BookProps = { key: string; book: Book; removeBook: unit -> unit }
  
  let bookComponent { book = book; removeBook = removeBook } =
    tr [] [
      td [] [
          if String.IsNullOrWhiteSpace book.Link then
              yield str book.Title
          else
              yield a [ Href book.Link; Target "_blank"] [str book.Title ] ]
      td [] [ str book.Authors ]
      td [] [ buttonLink "" removeBook [ str "Remove" ] ]
      ]
  
  let inline BookComponent props = (ofFunction bookComponent) props []
  
  let view (model:Model) (dispatch: Msg -> unit) =
      div [] [
          h4 [] [
              let time = model.ResetTime |> Option.map (fun t -> " - Last database reset at " + t.ToString("yyyy-MM-dd HH:mm") + "UTC") |> Option.defaultValue ""
  