-val get_int: string -> int
-val get_float: string -> float
-val get_string_list: string -> string list
+val get_string: string -> string (* alias for bare "get" above *)
+val get_int: string -> int
+val get_float: string -> float
+val get_bool: string -> bool
+val get_string_list: string -> string list
+
+ (* alias for bare "set" above *)
+val set_string: key:string -> value:string -> unit
+val set_int: key:string -> value:int -> unit
+val set_float: key:string -> value:float -> unit
+val set_bool: key:string -> value:bool -> unit
+val set_string_list: key:string -> value:string list -> unit
+
+(** {3 Optional values interface}
+ * Functions below took as first argument respectively a "getter" and a "setter"
+ * function. A getter is one of the get_* function above, a setter is one of the
+ * set_* function above. Returned value is a get (set) function typed as the
+ * given getter (setter) whith optional values. None is returned for missing
+ * keys and None can be assigned to a key removing it from the registry.
+ *)