sig
  module Internal = Js_internal
  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-EXTERNAL"
  external false_ : Js.boolean = "false" "BS-EXTERNAL"
  external null : 'Js.null = "" "BS-EXTERNAL"
  external undefined : 'Js.undefined = "" "BS-EXTERNAL"
  external to_bool : Js.boolean -> bool = "#boolean_to_bool"
  external typeof : '-> string = "#typeof"
  external log : '-> unit = "log" "BS-EXTERNAL"
  external log2 : '-> '-> unit = "log" "BS-EXTERNAL"
  external log3 : '-> '-> '-> unit = "log" "BS-EXTERNAL"
  external log4 : '-> '-> '-> '-> unit = "log" "BS-EXTERNAL"
  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
  module Option = Js_option
  module Result = Js_result
  module List = Js_list
  module Vector = Js_vector
end