Ecaml.FeatureA feature name is a symbol that stands for a collection of functions, variables, etc. The file that defines them should "provide" the feature. Another program that uses them may ensure they are defined by "requiring" the feature. This loads the file of definitions if it hasn't been loaded already.
(Info-goto-node "(elisp)Named Features").
include module type of struct include Ecaml_value.Feature endtype t = Ecaml_value.Symbol.tval require : t -> unit(describe-function 'require). require has its own OCaml-side table that avoids repeated calls to Elisp's require on the same symbol.
val provide : t -> unit(describe-function 'provide)
val is_provided : t -> bool(describe-function 'featurep)
val all_provided : unit -> t list(describe-variable 'features)