sig   type key   type value   type t   val set : t -> unit   val add_set_hook : (t -> t -> unit) -> unit   val add_update_hook : (t -> t -> unit) -> unit   val get : unit -> t   val clear : unit -> unit   val is_default : unit -> bool   val option_name : string   val print_help : Format.formatter -> unit   val self : State.t   val name : string   val mark_as_computed : ?project:Project.t -> unit -> unit   val is_computed : ?project:Project.t -> unit -> bool   module Datatype : Datatype.S   val add_hook_on_update : (Datatype.t -> unit) -> unit   val howto_marshal : (Datatype.t -> 'a) -> ('-> Datatype.t) -> unit   val equal : t -> t -> bool   val add_aliases : string list -> unit   val is_set : unit -> bool   val unsafe_set : t -> unit   val parameter : Typed_parameter.t   type elt = key * value list   val is_empty : unit -> bool   val iter : (elt -> unit) -> unit   val fold : (elt -> '-> 'a) -> '-> 'a   val add : elt -> unit   module As_string : String   module Category :     sig       type elt = elt       type t = elt Parameter_category.t       val none : t       val default : unit -> t       val all : unit -> t       val set_default : t -> unit       val add :         string -> State.t list -> elt Parameter_category.accessor -> t       val enable_all : State.t list -> elt Parameter_category.accessor -> t       val enable_all_as : t -> unit     end   val find :     Parameter_sig.Multiple_map.key -> Parameter_sig.Multiple_map.value list   val mem : Parameter_sig.Multiple_map.key -> bool end