type 'a t
val create : (old_value:'a -> new_value:'a -> bool) -> 'a t
val of_compare : ('a -> 'a -> int) -> 'a t
val always : _ t
val never : _ t
val phys_equal : _ t
val poly_equal : _ t
val equal : 'a t -> 'a t -> bool
val should_cutoff : 'a t -> old_value:'a -> new_value:'a -> bool