h$/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None /jvm-Sets the function to use for loading classes. is used by default.jvm'Yields a class referece. It behaves as  unless  is used.jvmSingletons of argument typesjvm Any objectjvm Method namejvmSingletons of argument typesjvm Argumentsjvm Class namejvm Method namejvmSingletons of argument typesjvm Argumentsjvm Class namejvmStatic field nameNone '(-./09>?jvmInject a concrete Haskell value into the space of Java objects. That is to say, marshall a Haskell value to a Java object. Unlike coercing, in general reflection induces allocations and copies. jvmInvariant: The result and the argument share no direct JVM object references. jvmExtract a concrete Haskell value from the space of Java objects. That is to say, unmarshall a Java object to a Haskell value. Unlike coercing, in general reifying induces allocations and copies. jvmInvariant: The result and the argument share no direct JVM object references. jvmThe   type family is used by both   and . In order to benefit from -XGeneralizedNewtypeDeriving$ of new instances, we make this an  associated) type family instead of a standalone one. jvmMap a Haskell type to the symbolic representation of a Java type.jvm$Document that a function is variadicVariadicIO f b constraints f to be of the form aA -> ... -> aA -> IO bfor any value of n, where the context provides "(Coercible aA, ... , Coercible aA)jvm&The return type of a variadic function In general, *ReturnTypeIO (aA -> ... -> aA -> IO b) = bWe keep it as a standalone type family to enable the definition of the catch-all  VariadicIO_ x instance.jvm VariadicIO_ f constraints f to be of the form f :: aA -> ... -> aA -> IO bfor any value of n, where the context provides "(Coercible aA, ... , Coercible aA)jvm(The singletons of the argument types of f. sings (Proxy (aA -> ... -> aA -> IO b) = [SomeSing (sing @aA), ... , SomeSing (sing @aA)]jvm 2apply g aA ... aA = g [coerce aA, ... , coerce aA]jvmA JNI call may cause a (Java) exception to be raised. This module raises it as a Haskell exception wrapping the Java exception.jvmTag data types that can be coerced in O(1) time without copy to a Java object or primitive type (i.e. have the same representation) by declaring an instance of this type class for that data type.jvmOpen a new scope for allocating (JNI) local references to JVM objects.jvmLike , but specify explicitly a minimum size for the frame. You probably don't need this.jvm Equivalent to 'popWithValue ()'.jvm$Pop a frame and return a JVM object.jvmPop a frame and return a value. This value MUST NOT be an object reference created in the popped frame. In that case use  instead.jvmCreate a local ref and delete it when the given action completes. jvm5Inject a value (of primitive or reference type) to a . This datatype is useful for e.g. passing arguments as a list of homogeneous type. Synonym for .!jvmIf ty is a reference type, then it should be possible to get an object from a value."jvm,Get the Java class of an object or anything  to one.#jvmCreates a new instance of the class whose name is resolved from the return type. For instance, do x ::  (', "java.lang.Integer") <- new 42 return x You can pass any number of  arguments to the constructor.$jvmCreates a new Java array of the given size. The type of the elements of the resulting array is determined by the return type a call to $7 has, at the call site, and must not be left ambiguous.&To create a Java array of 50 booleans:  do arr ::  (' (' "boolean")) <- $ 50 return arr %jvm+Creates an array from a list of references.&jvmThe Swiss Army knife for calling Java methods. Give it an object or any data type coercible to one and any number of  arguments. Based on the types of each argument, and based on the return type, &, will invoke the named method using of the  call*Method% family of functions in the JNI API.(When the method name is overloaded, use  or  appropriately on the class instance and/or on the arguments to invoke the right method.Example: call obj "frobnicate" x y z 'jvmSame as &, but for static methods.Example: /callStatic "java.lang.Integer" "parseInt" jstr (jvmGet a static field.+jvmThe identity instance.'jvm Class namejvm Method name(jvm Class namejvmStatic field name  !"#$%&'(%"#$%&'( !  Noneu  !"#$%&'(      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~jvm-0.5.0-inplaceLanguage.Java.UnsafeLanguage.Java.Internal Language.Javasingletons-2.7-bfb5fe39cb8e248ef8f2237ab3bebb1559a630f31232aed3eda4ad44a96fc002Data.Singletons.Internalsingjni-0.7.0-inplaceForeign.JNI.UnsafewithJVMsetGetClassFunctiongetClassnewJ callToJValuecallStaticToJValuegetStaticFieldAsJValueReflectreflectReifyreifyInterpretationInterp VariadicIOCoercionFailurecoercionActualcoercionExpected CoercibleTycoerceunsafeUncoercePopPopValue PopObjectpushpushWithSizeHintpop popWithObject popWithValue withLocalRefjvaluejobjectclassOfnewnewArraytoArraycall callStaticgetStaticField$fCoercibleChoice $fCoercible() $fCoercibleJ$fCoercibleDouble$fCoercibleFloat$fCoercibleInt64$fCoercibleInt32$fCoercibleInt16$fCoercibleWord16$fCoercibleChar$fCoercibleCChar$fCoercibleBool$fShowCoercionFailure$fExceptionCoercionFailure$fVariadicIO_x$fVariadicIO_->$fVariadicIO_IO$fStaticReflect $fReflect[] $fStaticReify $fReify[]$fStaticInterpretation$fInterpretationTYPE[]$fStaticReflect0$fReflectVector$fStaticReify0 $fReifyVector$fStaticInterpretation0$fInterpretationTYPEVector$fStaticReflect1$fReflectMVector$fStaticReify1$fReifyMVector$fStaticInterpretation1$fInterpretationTYPEMVector$fStaticReflect2$fReflectMVector0$fStaticReify2$fReifyMVector0$fStaticInterpretation2$fInterpretationTYPEMVector0$fStaticReflect3$fReflectMVector1$fStaticReify3$fReifyMVector1$fStaticInterpretation3$fInterpretationTYPEMVector1$fStaticReflect4$fReflectMVector2$fStaticReify4$fReifyMVector2$fStaticInterpretation4$fInterpretationTYPEMVector2$fStaticReflect5$fReflectMVector3$fStaticReify5$fReifyMVector3$fStaticInterpretation5$fInterpretationTYPEMVector3$fStaticReflect6$fReflectMVector4$fStaticReify6$fReifyMVector4$fStaticInterpretation6$fInterpretationTYPEMVector4$fStaticReflect7 $fReflectText$fStaticReify7 $fReifyText$fStaticInterpretation7$fInterpretationTYPEText$fStaticReflect8$fReflectFloat$fStaticReify8 $fReifyFloat$fStaticInterpretation8$fInterpretationTYPEFloat$fStaticReflect9$fReflectDouble$fStaticReify9 $fReifyDouble$fStaticInterpretation9$fInterpretationTYPEDouble$fStaticReflect10$fReflectWord16$fStaticReify10 $fReifyWord16$fStaticInterpretation10$fInterpretationTYPEWord16$fStaticReflect11$fReflectInt64$fStaticReify11 $fReifyInt64$fStaticInterpretation11$fInterpretationTYPEInt64$fStaticReflect12$fReflectInt32$fStaticReify12 $fReifyInt32$fStaticInterpretation12$fInterpretationTYPEInt32$fStaticReflect13$fReflectInt16$fStaticReify13 $fReifyInt16$fStaticInterpretation13$fInterpretationTYPEInt16$fStaticReflect14$fReflectCChar$fStaticReify14 $fReifyCChar$fStaticInterpretation14$fInterpretationTYPECChar$fStaticReflect15 $fReflectBool$fStaticReify15 $fReifyBool$fStaticInterpretation15$fInterpretationTYPEBool$fStaticReflect16$fReflectByteString$fStaticReify16$fReifyByteString$fStaticInterpretation16$fInterpretationTYPEByteString$fStaticReflect17 $fReflect()$fStaticReify17 $fReify()$fStaticInterpretation17$fInterpretationTYPE()$fStaticReflect18 $fReflectJ$fStaticReify18$fReifyJ$fStaticInterpretation18$fInterpretationTYPEJ findClass ReturnTypeIO VariadicIO_singsapplyForeign.JNI.TypesJValueJClassArrayPrimupcast unsafeCastSingForeign.JNI.InternalMethodSignatureReferenceTypeName Signature arrayUpcastgenericjniCtxjnulljtypeOfmethodSignature objectFromPtrreferenceTypeName signaturesingToIsReferenceTypeunsafeObjectToPtrunsafeUngeneric withJValues<>IsPrimitiveTypeIsReferenceTypeJArray JBooleanArray JByteArray JByteBuffer JCharArrayJClass JDoubleArrayJFieldID JFieldID_ JFloatArray JIntArray JLongArray JMethodID JMethodID_JNIEnvJNIEnv_JObject JObjectArray JShortArrayJString JThrowableJTypeIfaceVoidGenericJVMJVM_JDoubleJFloatJLongJIntJShortJCharJBooleanJByteSJTypeSIfaceSGenericSArraySClassSPrimSVoid