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. | `skip_subtree
    (*

    This causes the linter to finish the linting of the current rule, however any remaining rule will be skipped, and the entire subtree will not be linted.

    *)
  4. | `cond of ('predicate Blang.t * ('predicate, 'invariant) t) list
]
val compare : ('p -> 'p -> int) -> ('i -> 'i -> int) -> ('p, 'i) t -> ('p, 'i) t -> int
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 | `skip_subtree ]
module Stable : sig ... end