Module Dunolint.Rule

type ('predicate, 'invariant) t = [
  1. | `enforce of 'invariant
  2. | `return
    (*

    return stops the evaluation of the rule without trying to enforce any invariant.

    *)
  3. | `cond of ('predicate Blang.t * ('predicate, 'invariant) t) list
]
val equal : ('p -> 'p -> bool) -> ('i -> 'i -> bool) -> ('p, 'i) t -> ('p, 'i) t -> bool
val eval : ('predicate, 'invariant) t -> f:('predicate -> Trilang.t) -> [ `enforce of 'invariant | `return ]
module Stable : sig ... end