Domain keeping a non-negative count with a bounded maximum value. The count can be only incremented and decremented

### Parameters

`MaxCount : MaxCount`

### Signature

`include WithBottom with type astate = private int`
`include S`
`type astate`````
`val (<=) : lhs:astate ‑> rhs:astate ‑> bool`

the partial order induced by join

`val join : astate ‑> astate ‑> astate`
`val widen : prev:astate ‑> next:astate ‑> num_iters:int ‑> astate`
`val pp : F.formatter ‑> astate ‑> unit`
`val empty : astate`

The bottom value of the domain. Naming it empty instead of bottom helps to bind the empty value for sets and maps to the natural definition for bottom

`val is_empty : astate ‑> bool`

Return true if this is the bottom value

`val top : astate`

maximum value

`val is_top : astate ‑> bool`

return true if this is the maximum value

`val increment : astate ‑> astate`

bump the count by one if it is less than the max

`val decrement : astate ‑> astate`

descrease the count by one if it is greater than 0

`val add : astate ‑> astate ‑> astate`

capped sum of two states