sig
  type (-'obj, +'a) meth_callback
  type (-'arg, +'result) meth
  type (-'arg, +'result) fn
  type +'a t
  type +'a null
  type +'a undefined
  type +'a null_undefined
  type boolean
  type (+'a, +'e) promise
  external true_ : Js.boolean = "true"
    "BS:1.7.0  @@$true@"
  external false_ : Js.boolean = "false"
    "BS:1.7.0  @@%false@"
  external null : 'Js.null = "" "BS:1.7.0  @@$null@"
  external undefined : 'Js.undefined = ""
    "BS:1.7.0 @@)undefined@"
  external to_bool : Js.boolean -> bool = "#boolean_to_bool"
  external typeof : '-> string = "#typeof"
  external log : '-> unit = "console.log"
    "BS:1.7.0B@@F+console.log@@"
  external unsafe_lt : '-> '-> bool = "#unsafe_lt"
  external unsafe_le : '-> '-> bool = "#unsafe_le"
  external unsafe_gt : '-> '-> bool = "#unsafe_gt"
  external unsafe_ge : '-> '-> bool = "#unsafe_ge"
  module Null = Js_null
  module Undefined = Js_undefined
  module Null_undefined = Js_null_undefined
  module Exn = Js_exn
  module Array = Js_array
  module String = Js_string
  module Boolean = Js_boolean
  module Re = Js_re
  module Promise = Js_promise
  module Date = Js_date
  module Dict = Js_dict
  module Global = Js_global
  module Json = Js_json
  module Math = Js_math
  module Obj = Js_obj
  module Typed_array = Js_typed_array
  module Types = Js_types
  module Float = Js_float
  module Int = Js_int
end