anchor.diff:      /// Transform the url from an <a href="XYZ"> tag into an absolute path+query,
       /// if it is indeed a URL that Install wants to handle.
       let private hrefToAbsolute (href: string) =
  -        if isNull href then
  -            None
  -        elif href.StartsWith("?") then
  +        if href.StartsWith("?") then
               // Query only, just add it to the current path
               Some (JS.Window.Location.Pathname + href |> trimFragment)
           elif href.StartsWith("#") then
  
positive.code:             if var.Value <> value then
                  var.Value <- value
          
          JS.Window.Onpopstate <- fun ev ->
              set (cur())
  
          JS.Document.Body.AddEventListener("click", (fun (ev: Dom.Event) ->
              let rec findLinkElt (n: Dom.Node) =
                  if (n :?> Dom.Element).TagName = "A" then Some (n :?> Dom.Element)
                  elif n ===. JS.Document.Body then None
                  else findLinkElt n.ParentNode
              findLinkElt (As ev.Target)
              |> Option.bind (fun t -> t.GetAttribute("href") |> hrefToAbsolute)
              |> Option.bind (Route.FromUrl >> parse)
              |> Option.iter (fun a ->
                  set a
  
negative.code:             if var.Value <> value then
                  var.Value <- value
         
          JS.Window.AddEventListener("popstate", (fun () -> set (cur())), false)
          JS.Window.AddEventListener("hashchange", (fun () -> set (cur())), false)
  
          JS.Document.Body.AddEventListener("click", (fun (ev: Dom.Event) ->
              findLinkHref (As ev.Target)
              |> Option.bind (fun href -> if href.StartsWith "#" then parse href else None)
              |> Option.iter (fun a ->
                  set a
                  ev.PreventDefault()
              )
          ), false)
  
          var.View
          |> View.Sink (fun value ->
              if value <> cur() then 
  