Module Modes.Predicate

A very crucial design points here is that the predicates are syntactic. They do not talk about the evaluation of the ordered set, but refer to what is written in the dune file, literally.

So, for example even if the evaluation of the :standard mode includes byte, evaluating: `has_mode `byte on the input (:standard) returns false.

The reason is that dunolint focuses on linting what the user writes in the dune files, as opposed to how dune interprets it.

type t = [
  1. | `has_mode of [ `byte | `native | `best | `melange ]
  2. | `has_modes of [ `byte | `native | `best | `melange ] Base.list
]
val compare : t -> t -> Base.int
val equal : t -> t -> Base.bool
val sexp_of_t : t -> Sexplib0.Sexp.t
val t_of_sexp : Sexplib0.Sexp.t -> t
val __t_of_sexp__ : Sexplib0.Sexp.t -> t