sig
external make : 'a java_constructor -> 'a = "java constructor"
external make_array : 'a java_array_shape -> 'a = "java make array"
external make_array_dims : 'a java_array_shape_dims -> 'a
= "java make array dims"
external call : 'a java_method -> 'a = "java method call"
external get : 'a java_field_get -> 'a = "java field get"
external set : 'a java_field_set -> 'a = "java field set"
val null : 'a java_instance
external is_null : 'a java_instance -> bool = "java is_null"
external is_not_null : 'a java_instance -> bool = "java is_not_null"
external equal : 'a java_instance -> 'b java_instance -> bool = "java =="
external not_equal : 'a java_instance -> 'b java_instance -> bool
= "java !="
external instanceof : 'a java_reference_type -> 'b java_instance -> bool
= "java instanceof"
external cast : 'a java_reference_type -> 'b java_instance -> 'a
= "java cast"
external get_class : 'a java_any_type -> java'lang'Class java_instance
= "java class"
external throw : java'lang'Throwable java_extends -> 'a = "java throw"
external synchronized : 'a java_instance -> (unit -> unit) -> unit
= "java synchronized"
external proxy_loader :
'a java_proxy -> java'lang'ClassLoader java_extends -> 'a
= "java proxy loader"
external proxy_system : 'a java_proxy -> 'a = "java proxy system"
external proxy_runtime : 'a java_proxy -> 'a = "java proxy runtime"
external proxy : 'a java_proxy -> 'a = "java proxy system"
val wrap : 'a java_instance -> 'a java_instance option
end