sig
  type 'a t = 'Js.undefined
  external return : '-> 'Js_undefined.t = "%identity"
  external test : 'Js_undefined.t -> bool = "#is_undef"
  external testAny : '-> bool = "#is_undef"
  external empty : 'Js_undefined.t = "undefined"
    "BS:1.7.0 @@)undefined@"
  val bind : 'Js_undefined.t -> ('-> 'b [@bs]) -> 'Js_undefined.t
  val iter : 'Js_undefined.t -> ('-> unit [@bs]) -> unit
  val from_opt : 'a option -> 'Js_undefined.t
  external to_opt : 'Js_undefined.t -> 'a option = "#undefined_to_opt"
end