`val string_of_effects_backend : Config.effects_backend -> string`
`val effects_backend_of_string : string -> Config.effects_backend`
`val effects_backend_of_string_result : string -> (Config.effects_backend, string) Stdlib.result`
`val effects_backends_javascript : (string * [ `Cps | `Double_translation | `Disabled ]) list`
`val effects_backends_wasm : (string * [ `Jspi | `Cps | `Native | `Disabled ]) list`
`type config_key =`

1. `| Bool_key of {`
   1. `name : string;`
   2. `get : unit -> bool;`
   3. `set : bool -> unit;`
   4. `default : bool;`
   `}`
2. `| Enum_key of {`
   1. `name : string;`
   2. `get : unit -> string;`
   3. `set : string -> unit;`
   4. `valid : string list;`
   `}`

`val config_key_name : config_key -> string`
`val config_keys : [ `JavaScript | `Wasm ] -> config_key list`
`val config_key_values : config_key -> string list`
`val get_non_default_values : config_key list -> (string * string) list`
`val set_values : config_key list -> (string * string) list -> unit`
`val to_config_string : (string * string) list -> string`
`val parse_config_string : string -> (string * string) list`
`type t`
`type kind = [`

1. `| `Runtime`
2. `| `Exe`
3. `| `Cmo`
4. `| `Cma`
5. `| `Unknown`

`]`
`val create : kind -> t`
`val to_comment : t -> string`
`val parse_comment : string -> t option`
`val to_map : t -> string Stdlib.StringMap.t`
`val of_map : string Stdlib.StringMap.t -> t`
`val with_kind : t -> kind -> t`
`exception Incompatible_build_info of {`

1. `key : string;`
2. `first : string * string option;`
3. `second : string * string option;`

`}`
`val merge : [ `JavaScript | `Wasm ] -> string -> t -> string -> t -> t`
`val kind : t -> kind`
`val configure : t -> unit`