F# bounded LRU cache with recency tracking

F#
type LruCache<'K, 'V when 'K: comparison>(capacity: int) =
    let mutable tick = 0
    let mutable entries = Map.empty<'K, 'V * int>
    member _.Get key =
        match Map.tryFind key entries with
        | Some (value, _) ->
            tick <- tick + 1
            entries <- Map.add key (value, tick) entries
            Some value
        | None -> None
    member _.Put(key, value) =
        tick <- tick + 1
        entries <- Map.add key (value, tick) entries
        if entries.Count > capacity then
            let oldest = entries |> Map.toSeq |> Seq.minBy (fun (_, (_, t)) -> t) |> fst
            entries <- Map.remove oldest entries
    member _.Count = entries.Count