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 ] list
]
val equal : t -> t -> bool
val compare : t -> t -> int
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t