sig
  type 'a t = java'lang'ThreadLocal java_instance
  external make : 'a -> 'a ThreadLocal.t = "ocamljava_threadlocal_make"
  external get : 'a ThreadLocal.t -> 'a = "ocamljava_threadlocal_get"
  external remove : 'a ThreadLocal.t -> unit = "ocamljava_threadlocal_remove"
  external set : 'a ThreadLocal.t -> 'a -> unit = "ocamljava_threadlocal_set"
  val null : 'a ThreadLocal.t
  external is_null : 'a ThreadLocal.t -> bool = "java is_null"
  external is_not_null : 'a ThreadLocal.t -> bool = "java is_not_null"
  val wrap : 'a ThreadLocal.t -> 'a ThreadLocal.t option
  val unwrap : 'a ThreadLocal.t option -> 'a ThreadLocal.t
end