Module Modes_lib.Kind

type t = {
  1. layout : Layout.t;
  2. bounds : Jkind_modifiers.t;
}
val of_ident_exn : ident:string -> t

Interprets ident as a kind, expanding abbreviations known to the compiler (e.g. mutable_data).

Raises if ident does not correspond to a know layout or kind abbreviation.

val apply_mods : t -> Jkind_modifiers.t -> t

Applies the given modifiers mods to the kind k --- produces the kind (k) mod (mods). This can only strengthen the kind, and so will not necessarily set the bounds to be exactly the modifiers provided.

val is_subkind : t -> of_:t -> bool