anchor.diff:                      match op with
                           | Remove -> 
                               match mapping.Revoke(i) with
  -                                | true -> Some Remove
  +                                | Some true -> Some Remove
                                   | _ -> None
                           | Set v -> 
                               let o, n = mapping.InvokeAndGetOld(i, v)
  
positive.code:                         | (true,(b,r)) -> 
                              if !r <> 0 then failwith "[AList.mapUse] non zero refcount"
                              dispose b
                          | _ -> failwith "[AList.mapUse] tried to remove non existing"
  
                  ops       
  
  
negative.code:                     if s.HasValue then
                          store.Remove s.Value |> ignore
                          let (_,s) = s.Value
                          Some s
                      else
                          None
                          //failwith "[AList] removing unknown index"
  
                  member x.Clear() =
                      store.Clear()
  