sig
  external ( ! ) : 'Js.t -> 'a = "#unsafe_downgrade"
  external debugger : unit -> unit = "#debugger"
  external raw_expr : string -> 'a = "#raw_expr"
  external raw_stmt : string -> 'a = "#raw_stmt"
  external unsafe_downgrade : 'Js.t -> 'a = "#unsafe_downgrade"
  external fn_mk0 : (unit -> 'a0) -> ([ `Arity_0 ], 'a0) Js.Internal.fn
    = "#fn_mk" "0"
  external fn_mk1 : ('a0 -> 'a1) -> ([ `Arity_1 of 'a0 ], 'a1) Js.Internal.fn
    = "#fn_mk" "1"
  external fn_mk2 :
    ('a0 -> 'a1 -> 'a2) -> ([ `Arity_2 of 'a0 * 'a1 ], 'a2) Js.Internal.fn
    = "#fn_mk" "2"
  external fn_mk3 :
    ('a0 -> 'a1 -> 'a2 -> 'a3) ->
    ([ `Arity_3 of 'a0 * 'a1 * 'a2 ], 'a3) Js.Internal.fn = "#fn_mk" "3"
  external fn_mk4 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4) ->
    ([ `Arity_4 of 'a0 * 'a1 * 'a2 * 'a3 ], 'a4) Js.Internal.fn = "#fn_mk"
    "4"
  external fn_mk5 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5) ->
    ([ `Arity_5 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 ], 'a5) Js.Internal.fn
    = "#fn_mk" "5"
  external fn_mk6 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6) ->
    ([ `Arity_6 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 ], 'a6) Js.Internal.fn
    = "#fn_mk" "6"
  external fn_mk7 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7) ->
    ([ `Arity_7 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 ], 'a7)
    Js.Internal.fn = "#fn_mk" "7"
  external fn_mk8 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8) ->
    ([ `Arity_8 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 ], 'a8)
    Js.Internal.fn = "#fn_mk" "8"
  external fn_mk9 :
    ('a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 -> 'a9) ->
    ([ `Arity_9 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 * 'a8 ],
     'a9)
    Js.Internal.fn = "#fn_mk" "9"
  external fn_method1 :
    ('obj -> 'a0) -> ([ `Arity_1 of 'obj ], 'a0) Js.Internal.meth_callback
    = "#fn_method" "1"
  external fn_method2 :
    ('obj -> 'a0 -> 'a1) ->
    ([ `Arity_2 of 'obj * 'a0 ], 'a1) Js.Internal.meth_callback
    = "#fn_method" "2"
  external fn_method3 :
    ('obj -> 'a0 -> 'a1 -> 'a2) ->
    ([ `Arity_3 of 'obj * 'a0 * 'a1 ], 'a2) Js.Internal.meth_callback
    = "#fn_method" "3"
  external fn_method4 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3) ->
    ([ `Arity_4 of 'obj * 'a0 * 'a1 * 'a2 ], 'a3) Js.Internal.meth_callback
    = "#fn_method" "4"
  external fn_method5 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4) ->
    ([ `Arity_5 of 'obj * 'a0 * 'a1 * 'a2 * 'a3 ], 'a4)
    Js.Internal.meth_callback = "#fn_method" "5"
  external fn_method6 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5) ->
    ([ `Arity_6 of 'obj * 'a0 * 'a1 * 'a2 * 'a3 * 'a4 ], 'a5)
    Js.Internal.meth_callback = "#fn_method" "6"
  external fn_method7 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6) ->
    ([ `Arity_7 of 'obj * 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 ], 'a6)
    Js.Internal.meth_callback = "#fn_method" "7"
  external fn_method8 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7) ->
    ([ `Arity_8 of 'obj * 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 ], 'a7)
    Js.Internal.meth_callback = "#fn_method" "8"
  external fn_method9 :
    ('obj -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8) ->
    ([ `Arity_9 of 'obj * 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 ],
     'a8)
    Js.Internal.meth_callback = "#fn_method" "9"
  external fn_method10 :
    ('obj ->
     'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 -> 'a9) ->
    ([ `Arity_10 of
         'obj * 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 * 'a8 ],
     'a9)
    Js.Internal.meth_callback = "#fn_method" "10"
  external fn_run0 : ([ `Arity_0 ], 'a0) Js.Internal.fn -> 'a0 = "#fn_run"
    "0"
  external fn_run1 : ([ `Arity_1 of 'a0 ], 'a1) Js.Internal.fn -> 'a0 -> 'a1
    = "#fn_run" "1"
  external fn_run2 :
    ([ `Arity_2 of 'a0 * 'a1 ], 'a2) Js.Internal.fn -> 'a0 -> 'a1 -> 'a2
    = "#fn_run" "2"
  external fn_run3 :
    ([ `Arity_3 of 'a0 * 'a1 * 'a2 ], 'a3) Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 = "#fn_run" "3"
  external fn_run4 :
    ([ `Arity_4 of 'a0 * 'a1 * 'a2 * 'a3 ], 'a4) Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 = "#fn_run" "4"
  external fn_run5 :
    ([ `Arity_5 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 ], 'a5) Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 = "#fn_run" "5"
  external fn_run6 :
    ([ `Arity_6 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 ], 'a6) Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 = "#fn_run" "6"
  external fn_run7 :
    ([ `Arity_7 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 ], 'a7)
    Js.Internal.fn -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7
    = "#fn_run" "7"
  external fn_run8 :
    ([ `Arity_8 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 ], 'a8)
    Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 = "#fn_run"
    "8"
  external fn_run9 :
    ([ `Arity_9 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 * 'a8 ],
     'a9)
    Js.Internal.fn ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 -> 'a9
    = "#fn_run" "9"
  external method_run0 : ([ `Arity_0 ], 'a0) Js.Internal.meth -> 'a0
    = "#method_run" "0"
  external method_run1 :
    ([ `Arity_1 of 'a0 ], 'a1) Js.Internal.meth -> 'a0 -> 'a1 = "#method_run"
    "1"
  external method_run2 :
    ([ `Arity_2 of 'a0 * 'a1 ], 'a2) Js.Internal.meth -> 'a0 -> 'a1 -> 'a2
    = "#method_run" "2"
  external method_run3 :
    ([ `Arity_3 of 'a0 * 'a1 * 'a2 ], 'a3) Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 = "#method_run" "3"
  external method_run4 :
    ([ `Arity_4 of 'a0 * 'a1 * 'a2 * 'a3 ], 'a4) Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 = "#method_run" "4"
  external method_run5 :
    ([ `Arity_5 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 ], 'a5) Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 = "#method_run" "5"
  external method_run6 :
    ([ `Arity_6 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 ], 'a6) Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 = "#method_run" "6"
  external method_run7 :
    ([ `Arity_7 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 ], 'a7)
    Js.Internal.meth -> 'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7
    = "#method_run" "7"
  external method_run8 :
    ([ `Arity_8 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 ], 'a8)
    Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8
    = "#method_run" "8"
  external method_run9 :
    ([ `Arity_9 of 'a0 * 'a1 * 'a2 * 'a3 * 'a4 * 'a5 * 'a6 * 'a7 * 'a8 ],
     'a9)
    Js.Internal.meth ->
    'a0 -> 'a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'a6 -> 'a7 -> 'a8 -> 'a9
    = "#method_run" "9"
end