`type optimized_result = {`

1. `program : Code.program;`
2. `variable_uses : Deadcode.variable_uses;`
3. `trampolined_calls : Effects.trampolined_calls;`
4. `in_cps : Effects.in_cps;`
5. `deadcode_sentinal : Code.Var.t;`
6. `shapes : Shape.t Stdlib.StringMap.t;`

`}`
`val optimize_for_wasm : shapes:bool -> profile:Profile.t -> Code.program -> optimized_result * (Global_flow.state * Global_flow.info)`
`val f : ?standalone:bool -> ?wrap_with_fun:[ `Iife | `Anonymous | `Named of string ] -> ?profile:Profile.t -> ?shapes:bool -> link:[ `All | `All_from of string list | `Needed | `No ] -> source_map:bool -> formatter:Pretty_print.t -> Code.program -> Source_map.info * Shape.t Stdlib.StringMap.t`
`val f' : ?standalone:bool -> ?wrap_with_fun:[ `Iife | `Anonymous | `Named of string ] -> ?profile:Profile.t -> link:[ `All | `All_from of string list | `Needed | `No ] -> Pretty_print.t -> Code.program -> unit`
`val from_string : prims:string array -> debug:Instruct.debug_event list array -> string -> Pretty_print.t -> unit`
`val link_and_pack : ?standalone:bool -> ?wrap_with_fun:[ `Iife | `Anonymous | `Named of string ] -> ?link:[ `All | `All_from of string list | `Needed | `No ] -> Javascript.statement_list -> Javascript.statement_list`
`val simplify_js : Javascript.statement_list -> Javascript.statement_list`
`val name_variables : Javascript.statement_list -> Javascript.statement_list`
`val configure : Pretty_print.t -> unit`