F# token bucket rate limiter for bursts

F#
type TokenBucket(ratePerSecond: float, burst: float) =
    let clock = System.Diagnostics.Stopwatch.StartNew()
    let mutable last = 0.0
    let mutable tokens = burst
    member _.TryTake(count: float) =
        let now = clock.Elapsed.TotalSeconds
        tokens <- min burst (tokens + (now - last) * ratePerSecond)
        last <- now
        if tokens >= count then
            tokens <- tokens - count
            true
        else false
    member _.Available = tokens