An `'a Cutoff.t` is a function that returns `true` if propagation of changes should be cutoff at a node based on the old value and the (possible) new value of the node.

`type 'a t`````
`include sig ... end`
`val sexp_of_t : ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.t`
`include Core_kernel.Invariant.S1 with type a t := a t`
`type 'a t`````
`val invariant : 'a Base__.Invariant_intf.inv ‑> 'a t Base__.Invariant_intf.inv`
`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 should_cutoff : 'a t ‑> old_value:'a ‑> new_value:'a ‑> bool`
`val equal : 'a t ‑> 'a t ‑> bool`

One can use `equal` in combination with `get_cutoff` to check if a node has a particular cutoff function. `equal` uses `Core.phys_equal` for functional values supplied to `create` and `of_compare`.