%vt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                 Safe-Inferred9non-portable (UndecidableInstances, OverlappingInstances) provisionaljulian.fleischer@fu-berlin.deNoneLike  .  , but with a specialized 4 version for Strings plus it can be used within any    monad (such as IO and Java). Like   .  , but with a specialized 4 version for Strings plus it can be used within any    monad (such as IO and Java).      Safe-Inferred)Execute an action if the given predicate  evaluates to . )Execute an action if the given predicate  evaluates to . /Execute either the first or the second action, 4 depending on whether the given predicate evaluates  to  or . 1Run a computation as long as the given predicate  evaluates to . 1Reiterate a computation on a given value as long  as a condition is . /Reiterate a computation on a given value until  a condition is .      Safe-Inferred Safe-Inferred Safe-Inferred        Safe-Inferredportable (Haskell2010) provisionaljulian.fleischer@fu-berlin.de Safe-Inferred EBuild the name of a class based on maybe a package and a class name. !.Translates a package name into a module name. ",Translates a class name into a module name. #6Splits a class name into package name and class name. <If the name does not contain a package component, the first  string is empty.  See also $. $ Pendant to #. %9Retrieve the package name form a simple name of a class. takePackageName "java.lang.A$B"Just "java.lang"takePackageName "Test"Nothing&7Retrieve the class name form a simple name of a class. 9 This also contains the name of the enclosing class(es). takeClassName "java.lang.A$B""A$B"takeClassName "Thread$State""Thread$State"'7Retrieve the class name form a simple name of a class. 2 This contains only the name of the class itself. !takeBaseClassName "java.lang.A$B""B"(:Retrieve the names of the enclosing classes from a simple  class name. -takeEnclosingClasses "java.lang.Map$EntrySet"["java.lang.Map"]$takeEnclosingClasses "package.A$B$C"["package.A", "package.A$B"]  !"#$%&'(  !"#$%&'(  !"#$%&'(  !"#$%&'(!non-portable (DeriveDataTypeable) provisionaljulian.fleischer@fu-berlin.de Safe-Inferred)$A Constructor in the Java language. .0The interface to a method in the Java language. =The type of a generic type. E XF$The name of the type variable, e.g. E or X. G X[]H)The base type of the generic array, e.g. java.lang.Number. I java.util.List XJ/A plain type, full name. Used for example in a I 8 type, which may be parameterized by a plain type (like  Class Number. %The full name of the base type, e.g. java.lang.Class. KThe parameters. L ?super X,  ? extends X O(A Type variable. This is merely a name. RA Type variable declaration. ]The interface of a Java class. m?A JavaType is either a Primitive Type, an Array, or an Object. {Determines the V of a ]. |DCalculate all classes that are referenced in any way by this class. }7Derive the full name from a class definition. See also  . ~ Get the type of a generic type. 6Return the full names of all classes that this method  references in its definition. 6Retrieve all classes that this constructor definition 6 references in its parameters or generic declaration. X)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~X)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ymyxwvutsrpnqoz]^_`abcdefghijklV\[ZYXW{|}RSTUOPQCLIGEDMNJKHFJ=BA@?>~./0123456789:;<)*+,-)*+,-./0123456789:;<=BA@?>C LIGEDMNJKHFJOPQRSTUV\[ZYXW]^_`abcdefghijklm yxwvutsrpnqoz{|}~NoneNone  The monad. The state of the monad. ,This is the information which is ultimately % gathered by the use of this module. $Retrieve the definition of a class. /The monad has an internal store of class names  and their definitions. See . #Get the current context as a list. ,Add a context for a specific type variable. Introduce a new name. 3This simply takes the next element in the infinite  - list and stores the tail back in the monad.  5Push a new name in the front of the available names. ! Run a computation in the monad. %"#$%&'()*+,-./0123456789:; !*+,-./0123456;!"#$%&')(*+,-./0123456789:; !None<=>?@ABCDEFGHIJK<=>?@ABCDEFGHIJK<=>?@ABCDEFGHIJKNone$A reference to an Array in the JVM. A reference to an Exception. A reference to a Class object. $A reference to an arbitrary Object. %LMNOPQRST%LMNOPQRSTLMNOPQRST NonexUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4UWYZ[\]^_`abcdefghijklmnopqrstuvwxyz{eUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~portable (Haskell2010)stablejulian.fleischer@fu-berlin.deNonerelease5 is a special function which can be used to create a  7. A ForeignPtr does not carry a reference to a virtual  machine (no Ptr JVM.), thus this function will lookup the current = virtual machine or do nothing if it can not find one. It is  realised as a  as this is what  expects. ?Checks whether an exception occured and return that exception. ; If no exception occured, the returned pointer will be the . C This method will also call exceptionClear which means that it can A not be called twice. This method will return a global reference  - as opposed to , which will return a local  reference only. ?Checks whether an exception occured and return that exception. ; If no exception occured, the returned pointer will be the . D This method will return a local reference only, so beware that the . obtained Ptr will not be valid for too long. 7Checks whether an exception has occured in the virtual  machine or not. :Sets the path to libjvm. Note that this will only have an = effect if the library has not yet been initialized, that is 0 before any of the following functions is used: runJava,  runJava', and initJava. Do not invoke ) on the cstring passed to this function, < as this function will not set a copy but the object given. 8 It is only ever used once during the lifecycle of your  application. <Returns the path to libjvm with which this library has been . compiled. This is guaranteed to never return . You are not allowed to invoke  on the returned cstring. 9Returns the path to libjvm that is used by this library.  Note that this will return the nullPtr if the library has not C yet been initialized. The library is lazily initialized the first  time that runJava' is used. runJava is implemented in terms of  runJava, as is initJava. You are not allowed to invoke  on the returned cstring. 6Create a JValues Array which can be used for argument ; passing to a multi parameter method. You need to free the  Ptr object manually using . !This method is implemented using calloc internally. " See the native implementation of  newJValues. t     $The number of arguments (like argc) A char** to the arguments (like argv) 'Returns a Ptr to the newly running JVM           s     portable (Haskell2010)stablejulian.fleischer@fu-berlin.deNonerelease5 is a special function which can be used to create a  7. A ForeignPtr does not carry a reference to a virtual  machine (no Ptr JVM.), thus this function will lookup the current = virtual machine or do nothing if it can not find one. It is  realised as a  as this is what  expects.  ?Checks whether an exception occured and return that exception. ; If no exception occured, the returned pointer will be the . C This method will also call exceptionClear which means that it can A not be called twice. This method will return a global reference  - as opposed to !, which will return a local  reference only. !?Checks whether an exception occured and return that exception. ; If no exception occured, the returned pointer will be the . D This method will return a local reference only, so beware that the . obtained Ptr will not be valid for too long. $7Checks whether an exception has occured in the virtual  machine or not. %:Sets the path to libjvm. Note that this will only have an = effect if the library has not yet been initialized, that is 0 before any of the following functions is used: runJava,  runJava', and initJava. Do not invoke ) on the cstring passed to this function, < as this function will not set a copy but the object given. 8 It is only ever used once during the lifecycle of your  application. &<Returns the path to libjvm with which this library has been . compiled. This is guaranteed to never return . You are not allowed to invoke  on the returned cstring. '9Returns the path to libjvm that is used by this library.  Note that this will return the nullPtr if the library has not C yet been initialized. The library is lazily initialized the first  time that runJava' is used. runJava is implemented in terms of  runJava, as is initJava. You are not allowed to invoke  on the returned cstring. 6Create a JValues Array which can be used for argument ; passing to a multi parameter method. You need to free the  Ptr object manually using . !This method is implemented using calloc internally. " See the native implementation of  newJValues. t !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$The number of arguments (like argc) A char** to the arguments (like argv) 'Returns a Ptr to the newly running JVM  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~|}{zwpostvurqnmledhijkgfcbxy[Z^_`a]\YXGFJKLMIHEDQPTUVWSRON=<@ABC?>;:9567843210/.-,+*)($! #"'&%s !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred)The java bridge was linked with the Java  framework on OS X. Otherwise libjvm is  loaded dynamically. *The java bridge was compiled with special " support for Cocoa on Mac OS X. (The java bridge was compiled with debug  symbols. +The java bridge was compiled with only the ' core modules (low level interface). AReturns a list of flags which the java bridge was compiled with.  The version of the java bridge. NoneAEvery computation in the Java Virtual Machine happens inside the @ Java monad. The Java monad is mightier than the IO monad, i.e. C IO operations can be performed in both the IO monad as well as in B the Java monad, but Java operations can be performed in the Java % monad only and not in the IO monad.  Use one of  or  to perform operations in the  Java monad. 4The State of a virtual machine, running in the Java 5 Monad (which is a State Monad wrapped around the IO + Monad with JVMState as additional State). )All the accessor functions are INTERNAL. 4INTERNAL The actual pointer to the virtual machine. 6INTERNAL Whether this virtual machine instance should * be talked to using safe or unsafe calls.  See also setSafe and . 0INTERNAL The cached methodID of Object.toString 0INTERNAL The cached methodID of Object.hashCode 6A reference to an instance of a Java Virtual Machine. :An exception in either the Java Virtual Machine or during $ instantiating the Virtual Machine. 7An exception that occurred inside the virtual machine. 1 Thrown by those functions ending with a capital E. 5An exception that occurred during the initialization # of the virtual machine. Thrown by , ,  or .  Short for  and restricted to the  monad. @Creates a JVMState and initializes it with sane default values. ; A Pointer to the virtual machine is required in any case. INTERNAL Retrieve the  from this Java Monads  State. INTERNAL Retrieve  from this Java Monads Sate. 6By default java methods are invoked via the FFI using ; safe calls. Safe calls are slower than unsafe calls. This : function controls whether safe or unsafe calls are being # used to communicate with the JVM. 9If your application does not invoke the JVM concurrently ( it is mostly safe to use unsafe calls.  ) runJava (setUnsafe True >> doSomething)  will perform  doSomething using unsafe calls. >A utility function for forking an OS thread which runs in the  Java Monad. It will return a  which you can wait on  using . ?Wait for a Java Thread to exit. If the thread exits abnormally @ (that is, if an exception occurred), this function will return  Left SomeException-. Otherwise it will return the result of the  computation as Right a. :Run a computation with support by a Java Virtual Machine. :Run a computation with support by a Java Virtual Machine, ( initialized with the given parameters. ;This function may be used only once. If you intend to call > it multiple times, you need to initialize the Java subsystem < once before. If you fail to do so, this function will tear + down the virtual machine once it is done.  By using * the virtual machine will be alive during ( the whole lifetime of your process and  will never  tear down the machine. NOTE: According to the Java Native Interface specification it may be possible to create multiple virtual machines within a single process. However, no implementation of the JNI seems to be capable of doing so. ;This function can be used to set for example the classpath  of the virtual machine:  6 runJava' ["-Djava.class.path=java-library-dir"] $ do  doSomething 2NOTE: java.class.path does support relative paths. Short hand for  runJavaGui' []. 7Mac OS X needs some special treatment for initializing D graphical applications, namely a Cocoa Runloop needs to be present > on the main thread. Since the main thread is the application : that the JVM was invoked from this has two consequences: 6 (1) A runloop needs to be created on the main thread F manually and (2) the main thread is not usable for your application. 7On Mac OS X this function will fork an os thread using  D and start the Cocoa main event loop. This means that this function D must be called on the main thread and that it will never terminate > (since the cocoa event queue will be running there forever). ;Note that this implies that you link your application with  the threaded runtime ( `-threaded` in GHC). 2Typically your application should look like this:   main = runJavaGui $ do  stuffYourApplicationDoes 3On all other platforms this is exactly the same as  ! (minus the fact that it returns ()). 4Initializes the Java Virtual Machine so that it can & be used by subsequent invocations of  . Note that A once you start the virtual machine it will be runing throughout < the whole lifetime of the main thread of your application. 20 portable (Haskell2010) provisionaljulian.fleischer@fu-berlin.de Safe-Inferred=A ternary value type to hold one of two possible value types  or none at all. A value describing the error  No value An actual value  fold on a , like  for  or  for . ;default value if neither a value nor a fail value is given  function to handle a fail value #function to handle an actual value  the value the final return value "non-portable (see LANGUAGE pragma) provisionaljulian.fleischer@fu-berlin.deNone:Provides basic functions that every Java Object supports.  There are instances for , , ,  and - (which are all references to objects in the  virtual machine). Minimal complete definition: .  Invokes the toString% method which every Java Object has.  Invokes the hashCode% method which every Java Object has. 5Turns the reference into a JObject. This can be used 8 to down-cast any reference to an Object inside the JVM  to a JObject. 6Returns a reference to the Class of the given object. ,Checks two objects for equality using their equals methods. 9INTERNAL Checks whether an exception has occurred in the & virtual machine and returns either a Left JThrowable  if that is so or a Right a where a is the excepted type  of the result. =INTERNAL This function is used to really throw a JThrowable, ? that is to throw a Java Exception as an exception in Haskell.  Return the length of an JArray. Finds and loads a class. >Note that this function can indeed fail with an exception and A may execute code from the class to be loaded inside the virtual  machine. This is due to the fact that getClass is a translation of the   findClass; function in the JNI which loads *and* resolves the class. D If you want to get a class definition without resolving the class,  use the method loadClass(String,boolean) on a  ClassLoader. &Here is an example of how to do that:  main' = runJava $ do < (Just classLoader) <- getClass "java.lang.ClassLoader" S getSystemClassLoader <- classLoader `bindStaticMethod` "getSystemClassLoader" , ::= object "java.lang.ClassLoader" 6 (Just systemClassLoader) <- getSystemClassLoader  7 loadClass <- classLoader `bindMethod` "loadClass" = ::= string --> boolean --> object "java.lang.Class" M (Just clazz) <- loadClass systemClassLoader "java.awt.EventQueue" False  io$ print clazz 5Check whether the given object is an instance of the  given class. "Every JThrowable is a JavaObject. Every JClass is a JavaObject. Every JArray is a JavaObject.       !"#$%&'()*+,-.-The name of the class. This should be a name  as would be returned by the  getName() method " of the class object, for example  java.lang.Thread$State or  java.util.Map. 'Returns Just the JClass or Nothing, if  the class does not exist. /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NI      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ provisionaljulian.fleischer@fu-berlin.deNone None1The names of all Java Classes part of Java SE 6. /Imports of all auto generated java code files. 2Retrieve information about the given Java classes  from the Java Virtual Machine. 3Find all classes that the given classes depend on. :In order to provide proper bindings for a class, bindings = for all classes which a class depends on need to exist too. : A class depends on all classes which it inherits from or ; which are used as arguments, return types, or parameters. :This functions returns all the class names of the classes 9 on which the given classes depend on. No duplicates are , reported and the resulting list is sorted.   non-portable (TypeFamilies) experimentaljulian.fleischer@fu-berlin.deNone:For INTERNAL use only. Is however not in a hidden module, . so that other libraries can link against it. ,For INTERNAL use only. Do not use yourself. A convenient alternative to . Minimal complete definition:  or . Check if the object of type a is an instance  of the type represented by b. Check if the object of type a is an instance  of the type c, represented by b. If so, it will coerce  the object of type a" and pass it to the given action. If a was an instance of c (where c is represented  by b) this function will return  d, where d is 1 the result of the optional computation. If not,   is returned. !Coerces the given object of type a to an object of  c, where c# is represented by a value of type b.  Returns  if this is not possible. .The result of a function call that is of type object. $An array result of a function call. 5The JVM machine type of the components of the array. 6The type of the component of the array as returned by  the low level JNI call. +Convert the array to a sophisticated type. .The result of a function call that is of type void. .The result of a function call that is of type double. .The result of a function call that is of type float. .The result of a function call that is of type long. .The result of a function call that is of type int. .The result of a function call that is of type short. .The result of a function call that is of type byte. .The result of a function call that is of type char. .The result of a function call that is of type boolean. !Yepp. Register callbacks. Do it. x   ;;]   portable (Haskell2010) provisionaljulian.fleischer@fu-berlin.deNone    !"#$%%&&'())*+,--./00123456789:;<=>??@ABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abccdeefghijklmnoopqrstuvwxyz{|}~      !"#$%&'(      !"#$%&'( ) * + , - . /0123456789: ; < = ; >?@ABCDEFGHIJKLMNOPQR"STUVWXYZ[\]^_`abcde f g h i j k l m n o p q r s t u v w x y z { | } ~                                         fe      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFCGHIJKLMNOPQJKLMNOPQRSTUVWXXYZ[01\R]^_`abcdefghijklmno$pqrsrtuvuwxyz{|}CD~EFG      !"#$%&'()*+,-./012345678k9: ; < = >u?u@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | }~java-bridge-0.20130606.3 Foreign.JavaForeign.Java.IOForeign.Java.Control"Foreign.Java.Bindings.HaskellTypesForeign.Java.UtilsForeign.Java.Bindings.JavaTypesForeign.Java.JNI.UnsafeForeign.Java.JNI.SafeForeign.Java.JNIForeign.Java.ValueForeign.Java.BindingsForeign.Java.Bindings.SupportForeign.Java.Tutorial$Foreign.Java.Bindings.ReflectHaskell"Foreign.Java.Bindings.Haskell2JavaForeign.Java.Bindings.JavaSE6Foreign.Java.UtilForeign.Java.Bindings.Typomatic"Foreign.Java.Bindings.Java2HaskellForeign.Java.JNI.TypesForeign.Java.TypesForeign.Java.JavaMonad!Foreign.Java.Bindings.ReflectJavaForeign.Java.Maybetransformers-0.3.0.0Control.Monad.IO.ClassliftIOPrintLnprintlnprintwhenunlesswhetherwhileforuntil HaskellTypeHaskellConstructorconstructorNameconstructorFieldHaskellFunction functionName functionArgsfunctionReturn HaskellDatadataNamedataConstructors HaskellModule moduleNamemoduleFunctions moduleData javaKeywordshaskellKeywordsmakeNamemakePackageModuleNamemakeClassModuleNamesplitClassName joinClassNametakePackageName takeClassNametakeBaseClassNametakeEnclosingClassesJavaConstructorconstructorParamsconstructorGenericParamsconstructorTypeParams JavaMethod methodName methodName' methodParamsmethodGenericParamsmethodReturnTypemethodGenericReturnTypemethodTypeParams methodStaticmethodAbstract methodPublic methodFinal methodNativemethodSynchronizedJavaGenericTypeType NotSoGenericTTypeVarReferenceT GenericArrayTParameterizedT WildcardTJavaGenericType NotSoGenericTypeVarReferencejgtName GenericArrayjgtComponentType Parameterized jgtBasetype jgtParametersWildcard jgtBoundsjgtLowerBoundsTyVar tyVarName JavaTypeParam paramName paramBounds JavaClassTypeError ExceptionClassEnum Interface Annotation JavaClass className classPackage classModName classParents classIfacesclassConstructors classMethodsclassTypeParams classEnumclassEnumConstants classIfaceclassAnnotation classAbstract classFinalJavaTypeJArr componentTypeJObjtypeNameJDoubleJFloatJLongJIntJShortJByteJCharJBoolean printJavaType classTypeclassDependencies classFullNamejgtTypemethodDependenciesconstructorDependenciesJArray JThrowableJClassJObjectJArgArrayAObjectAStringADoubleAFloatALongAIntAShortAByteACharABooleanAJBytesJCharsJValuesJConstructorIDJStaticFieldIDJFieldIDJStaticMethodID JMethodID JThrowableRef JClassRef JObjectRefJVMMethodDescriptor::=booleancharbyteshortintlongfloatdoubleobjectarraystringvoid-->release runCocoaMainsetDebugStatusgetDebugStatusregisterCallbacksreleaseJThrowableRefreleaseJClassRefreleaseJObjectRefexceptionOccurredClearexceptionOccurredexceptionDescribeexceptionClearexceptionCheck setLibjvmPathgetCompiledLibjvmPath getLibjvmPath isInstanceOfgetObjectClassgetArrayLengthjStringToCString releaseJBytes releaseJCharsbytesFromJStringcharsFromJString newJStringsetJValueStringsetJValueObjectsetJValueDoublesetJValueFloat setJValueBytesetJValueShort setJValueInt setJValueLong newJValuessetStringFieldsetObjectField setCharFieldsetBooleanFieldsetDoubleField setFloatField setByteField setShortField setIntField setLongFieldsetStaticStringFieldsetStaticObjectFieldsetStaticCharFieldsetStaticBooleanFieldsetStaticDoubleFieldsetStaticFloatFieldsetStaticByteFieldsetStaticShortFieldsetStaticIntFieldsetStaticLongFieldgetStringFieldgetObjectField getCharFieldgetBooleanFieldgetDoubleField getFloatField getByteField getShortField getIntField getLongFieldgetStaticStringFieldgetStaticObjectFieldgetStaticCharFieldgetStaticBooleanFieldgetStaticDoubleFieldgetStaticFloatFieldgetStaticByteFieldgetStaticShortFieldgetStaticIntFieldgetStaticLongFieldcallStringMethodcallObjectMethodcallCharMethodcallBooleanMethodcallDoubleMethodcallFloatMethodcallByteMethodcallShortMethod callIntMethodcallLongMethodcallVoidMethodcallStaticStringMethodcallStaticObjectMethodcallStaticCharMethodcallStaticBooleanMethodcallStaticDoubleMethodcallStaticFloatMethodcallStaticByteMethodcallStaticShortMethodcallStaticLongMethodcallStaticIntMethodcallStaticVoidMethod getFieldIDgetStaticFieldID getMethodIDgetStaticMethodIDgetConstructorID newObject findClass persistVM destroyVM createVM'createVM mkJValuesJniFlag OSX_FRAMEWORKOSX_GUIDEBUG ONLY_COREjniFlagsjavaBridgeVersion JavaThreadIdJavaio setUnsafeforkJavawaitJavarunJavarunJava' runJavaGui runJavaGui'initJavaValueFailNoValuevaluereadStaticFieldwriteStaticField readField writeField JStaticFieldJFieldJMethod JStaticMethod JConstructor JavaArrayatwritetoList JavaObjecttoStringhashCodeasObjectclassOfequals arrayLength newObjectE newObjectXgetConstructor newObjectFromnewObjectFromEnewObjectFromXgetStaticMethodbindStaticMethod bindMethod getMethodcallStaticMethodcallStaticMethodEcallStaticMethodX callMethod callMethodE callMethodXgetFieldgetStaticFieldgetClassjavaClassesSE6printJavaPackageModuleprintJavaClassModuleprintJavaClassBootfileprintJavaClassModule'printJavaClassBootfile'reflectJavaClassesfindJavaClasses WrappedFun UnsafeCastunsafeFromJObject InstanceOf CoercedType instanceOfwhenInstanceOfcoerce ObjectResulttoObjectResult ArrayResultArrayResultTypeArrayResultComponent toArrayResult VoidResult toVoidResult DoubleResulttoDoubleResult FloatResult toFloatResult LongResult toLongResult IntResult toIntResult ShortResult toShortResult ByteResult toByteResult CharResult toCharResult BooleanResulttoBooleanResultArrayasMaybeArrayObjecttoDoubletoFloattoLongtoInttoShorttoBytetoChar toBooleanwrap_object'runJava_ freeFunPtrwrapintify sushimakideletebase System.IOputStrLnGHC.ShowshowMonadIOputStr $fPrintLna $fPrintLn[]ghc-prim GHC.TypesTrueFalsetr$><$ breakLasttracedebug TypomaticTypomaticStateArgInfotClasses getContext addContextnewVartVarspushVar runTypomatic _runTypomatictContexttParamsTVarTVars fSignature fArguments fReturnType fArgNamesfJavaSignaturefJavaReturnType fJniSignature dataTName dataCName newtTName newtCName tyclTName printTVar printJniTypeprintJniRawTypeprintJniSignature typomatic pkgModExports pkgModImports pkgModDeclclassBootExportsclassBootImportsclassModImports classBootDeclclassModExports classModDecl mkMethodNamesclassModExports'classBootExports'classBootImports'classModImports'classBootDecl' classModDecl' jarrayLength jarrayPtr jthrowablePtr jclassPtr jobjectPtrMethod_methodSignature Constructor_constructorSignaturejargParamfieldSignaturePQXAVLDFJISBCZconstructorSignaturemethodSignature $fMethod[] $fMethod(->) $fMethod(->)0 $fMethod(->)1 $fMethod(->)2 $fMethod(->)3 $fMethod(->)4 $fMethod(->)5 $fMethod(->)6 $fMethod(->)7 $fMethod(->)8 $fMethod(->)9$fMethod(->)10$fMethod(->)11$fMethod(->)12$fMethod(->)13$fMethod(->)14$fMethod(->)15$fMethod(->)16$fMethod(->)17$fMethod(->)18$fMethod(->)19$fMethod(->)20$fMethod(->)21$fMethod(->)22$fMethod(->)23$fMethod(->)24$fMethod(->)25$fConstructor(->)$fConstructor(->)0$fConstructor(->)1$fConstructor(->)2$fConstructor(->)3$fConstructor(->)4$fConstructor(->)5$fConstructor(->)6$fConstructor(->)7$fConstructor(->)8$fConstructor(->)9$fConstructor(->)10$fConstructor(->)11$fConstructor[] $fJArgQMaybe $fJArgX[] $fJArgAMaybe $fJArgLMaybe $fJArgDDouble $fJArgFFloat $fJArgJInt64 $fJArgIInt32 $fJArgSInt16 $fJArgBInt8 $fJArgCWord16 $fJArgZBool$fParamQ$fParamA$fParamX$fParamL$fParamD$fParamF$fParamJ$fParamI$fParamS$fParamB$fParamC$fParamZGHC.ForeignPtr ForeignPtrGHC.PtrFunPtrForeign.ForeignPtr.Imp newForeignPtrnullPtrForeign.Marshal.AllocfreeReleaseGlobalReferencerelease_ setJValueCharsetJValueBooleanfillJValuesArray%$fReleaseGlobalReferenceJThrowableRef!$fReleaseGlobalReferenceJClassRef"$fReleaseGlobalReferenceJObjectRefJVMStatejvmPtrjvmSafegetSafe jvmToString jvmHashCode JavaException JvmException newJVMStategetVM_runJavajvmGetCjvmGetBjvmGetSjvmGetIjvmGetJjvmGetFjvmGetDjvmGetZjvmGetLjvmSetCjvmSetBjvmSetSjvmSetIjvmSetJjvmSetFjvmSetDjvmSetZjvmSetL augmentOpts$fExceptionJavaException$fShowJavaException Data.EithereitherEither Data.MaybemaybeMaybecheckthrowJavaException$fJavaObjectJThrowable$fJavaObjectJClass$fJavaObjectJArray7Field MethodCallX _methodCallX MethodCallE _methodCallE MethodCall _methodCallMethodH StaticCallX _staticCallX StaticCallE _staticCallE StaticCall _staticCallStaticH NewObjectX _newObjectX NewObjectE _newObjectE NewObject _newObject ConstructorH_get_setnuObject nuObjectE nuObjectX staticCall staticCallE staticCallX methodCall methodCallE methodCallX _getField returnObject returnString returnArray $fFieldLMaybe $fFieldFFloat$fFieldDDouble $fFieldJInt64 $fFieldIInt32 $fFieldSInt16 $fFieldBInt8$fFieldCWord16 $fFieldZBool$fMethodCallXAJava$fMethodCallEAJava$fMethodCallAJava$fMethodCallXQJava$fMethodCallEQJava$fMethodCallQJava$fMethodCallXLJava$fMethodCallELJava$fMethodCallLJava$fMethodCallXXJava$fMethodCallEXJava$fMethodCallXJava$fMethodCallXDJava$fMethodCallEDJava$fMethodCallDJava$fMethodCallXFJava$fMethodCallEFJava$fMethodCallFJava$fMethodCallXJJava$fMethodCallEJJava$fMethodCallJJava$fMethodCallXIJava$fMethodCallEIJava$fMethodCallIJava$fMethodCallXSJava$fMethodCallESJava$fMethodCallSJava$fMethodCallXBJava$fMethodCallEBJava$fMethodCallBJava$fMethodCallXCJava$fMethodCallECJava$fMethodCallCJava$fMethodCallXZJava$fMethodCallEZJava$fMethodCallZJava$fMethodCallXVJava$fMethodCallEVJava$fMethodCallVJava$fMethodCallXP(->)$fMethodCallEP(->)$fMethodCallP(->)$fStaticCallXAJava$fStaticCallEAJava$fStaticCallAJava$fStaticCallXQJava$fStaticCallEQJava$fStaticCallQJava$fStaticCallXLJava$fStaticCallELJava$fStaticCallLJava$fStaticCallXXJava$fStaticCallEXJava$fStaticCallXJava$fStaticCallXDJava$fStaticCallEDJava$fStaticCallDJava$fStaticCallXFJava$fStaticCallEFJava$fStaticCallFJava$fStaticCallXJJava$fStaticCallEJJava$fStaticCallJJava$fStaticCallXIJava$fStaticCallEIJava$fStaticCallIJava$fStaticCallXSJava$fStaticCallESJava$fStaticCallSJava$fStaticCallXBJava$fStaticCallEBJava$fStaticCallBJava$fStaticCallXCJava$fStaticCallECJava$fStaticCallCJava$fStaticCallXZJava$fStaticCallEZJava$fStaticCallZJava$fStaticCallXVJava$fStaticCallEVJava$fStaticCallVJava$fStaticCallXP(->)$fStaticCallEP(->)$fStaticCallP(->)$fNewObjectEA(->)$fNewObjectXA(->)$fNewObjectA(->)$fNewObjectEX(->)$fNewObjectXX(->)$fNewObjectX(->)$fNewObjectEQ(->)$fNewObjectXQ(->)$fNewObjectQ(->)$fNewObjectEL(->)$fNewObjectXL(->)$fNewObjectL(->)$fNewObjectED(->)$fNewObjectXD(->)$fNewObjectD(->)$fNewObjectEF(->)$fNewObjectXF(->)$fNewObjectF(->)$fNewObjectEJ(->)$fNewObjectXJ(->)$fNewObjectJ(->)$fNewObjectEI(->)$fNewObjectXI(->)$fNewObjectI(->)$fNewObjectES(->)$fNewObjectXS(->)$fNewObjectS(->)$fNewObjectEB(->)$fNewObjectXB(->)$fNewObjectB(->)$fNewObjectEC(->)$fNewObjectXC(->)$fNewObjectC(->)$fNewObjectEZ(->)$fNewObjectXZ(->)$fNewObjectZ(->)$fNewObjectXP(->)$fNewObjectEP(->)$fNewObjectP(->)$fJavaArrayAMaybe$fJavaArrayLMaybe$fJavaObjectJArray$fJavaArrayFFloat$fJavaObjectJArray0$fJavaArrayDDouble$fJavaObjectJArray1$fJavaArrayJInt64$fJavaObjectJArray2$fJavaArrayIInt32$fJavaObjectJArray3$fJavaArraySInt16$fJavaObjectJArray4$fJavaArrayBInt8$fJavaObjectJArray5$fJavaArrayCWord16$fJavaObjectJArray6$fJavaArrayZBool$fJavaObjectJObject findClassesreflectClassesimportsclassInfoSignature classInfo' packageInfo'JustNothing$fObjectResult[]$fObjectResultMaybe$fObjectResultEither$fObjectResultEither0$fObjectResultValue$fArrayResult[]$fArrayResult[]0$fArrayResult[]1$fArrayResult[]2$fArrayResult[]3$fArrayResult[]4$fArrayResult[]5$fArrayResult[]6$fArrayResult[]7$fArrayResult[]8$fArrayResultEither$fVoidResultMaybe$fVoidResultEither$fVoidResult()$fDoubleResultEither$fDoubleResultDouble$fFloatResultEither$fFloatResultFloat$fLongResultEither$fLongResultInt64$fIntResultEither$fIntResultInt32$fShortResultEither$fShortResultInt16$fByteResultEither$fByteResultInt8$fCharResultEither$fCharResultWord16$fBooleanResultEither$fBooleanResultBool$fJDoubleDouble$fJDoubleCDouble $fJFloatFloat$fJFloatCFloat $fJLongInt64 $fJLongWord32 $fJLongInt32 $fJLongWord16 $fJLongInt16 $fJLongWord8 $fJLongInt8 $fJLongInt $fJIntInt32 $fJIntWord16 $fJIntInt16 $fJIntWord8 $fJIntInt8 $fJIntInt $fJShortInt16 $fJShortWord8 $fJShortInt8 $fJByteInt8 $fJCharWord16 $fJCharInt8 $fJCharChar$fJBooleanBool$fJavaObjectMaybe