sig
  module type Common =
    sig
      type t
      val get : string -> unit -> Dynamic.Parameter.Common.t
      val set : string -> Dynamic.Parameter.Common.t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
    end
  val get_parameter : string -> Typed_parameter.t
  val get_state : string -> State.t
  val get_name : string -> string -> string -> string
  module Bool :
    sig
      type t = bool
      val get : string -> unit -> t
      val set : string -> t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
      val on : string -> unit -> unit
      val off : string -> unit -> unit
    end
  module Int :
    sig
      type t = int
      val get : string -> unit -> t
      val set : string -> t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
      val incr : string -> unit -> unit
    end
  module String :
    sig
      type t = string
      val get : string -> unit -> t
      val set : string -> t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
    end
  module StringSet :
    sig
      type t = Datatype.String.Set.t
      val get : string -> unit -> t
      val set : string -> t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
      val add : string -> string -> unit
      val remove : string -> string -> unit
      val is_empty : string -> unit -> bool
      val iter : string -> (string -> unit) -> unit
    end
  module StringList :
    sig
      type t = string list
      val get : string -> unit -> t
      val set : string -> t -> unit
      val clear : string -> unit -> unit
      val is_set : string -> unit -> bool
      val is_default : string -> unit -> bool
      val add : string -> string -> unit
      val append_before : string -> string list -> unit
      val append_after : string -> string list -> unit
      val remove : string -> string -> unit
      val is_empty : string -> unit -> bool
      val iter : string -> (string -> unit) -> unit
    end
end