úÎ0.Ç  *JudyLGet: read a value from a JudyL array  $ JudyLGet(PJLArray, Index, &JError)  used as: W #define JLG(PValue, PJLArray, Index) -- > PValue = JudyLGet(PJLArray, Index, PJE0)  JudyLMemUsed   JudyLMemUsed(PJLArray) I #define JLMU(Rc_word, PJLArray) -- > Rc_word = JudyLMemUsed(PJLArray) >Return the number of bytes of memory used by the JudyL array.  memoryUsed :: JudyL -> IO Word < memoryUsed j = withForeignPtr (unJudyL j) c_judyl_mem_used JLI(PValue, PJLArray, Index)  JudyLIns() "JudyLIns : insert an index into a  array, returning a pointer @ to the value to store in the association table (which may be a  pointer)  % JudyLIns(&PJLArray, Index, &JError)  used as: X #define JLI(PValue, PJLArray, Index) -- > PValue = JudyLIns(&PJLArray, Index, PJE0) *Given a pointer to a JudyL array quickly.  B Word_t JudyLFreeArray( PPvoid_t PPJLArray, PJError_t PJError);  ' JudyLFreeArray(&PJLArray, &JError)  which is u #define JLFA(Rc_word, PJLArray) -- > Rc_word = JudyLFreeArray(&PJLArray, PJE0) 7Class of things that can be stored in the JudyL array. ? You need to be able to convert the structure to a Word value,  or a word-sized pointer. MConvert the Haskell value to a word-sized type that may be stored in a JudyL 8Reconstruct the Haskell value from the word-sized type. 7Count the number of indexes present in the JudyL array  8 JLC(Rc_word, PJLArray, Index1, Index2) // JudyLCount() GReturn Rc_word set to the count. A return value of 0 can be valid as a < count. To count all indexes present in a JudyL array, use:  JLC(Rc_word, PJLArray, 0, -1); @A JudyL array is a finite map from Word to Word values. A value G is addressed by a key (Key). The array may be sparse, and the key may 7 be any word-sized value. There are no duplicate keys. HThe type of keys in the JudyL arrays. A word-sized type (64 or 32 bits) AAllocate a new empty JudyL array. A finalizer is associated with @ the JudyL array, that will free it automatically once the last D reference has been dropped. Note that if you store pointers in the D Judy array we have no way of deallocating those. You need to track 5 those yourself (e.g. via StableName or ForeignPtr). GThe Haskell GC will track references to the foreign resource, but the  foreign resource won'-t exert any heap pressure on the GC, meaning E that finalizers will be run much later than you expect. An explicit   performGC can help with this. 2Insert a key and value pair into the JudyL array. G *If the key is already present in the map, the value is not modified* 9Lookup a value associated with a key in the JudyL array. Delete the Index/!Value pair from the JudyL array. The null error value. 7For checking return values from various Judy functions  A scalar error. HThe error pointer. maxBound :: Word. We try hard to get this to inline. 3 Empirically determined to yield the fastest code.         judy-0.2 Data.JudyJEtoWordfromWordJudyLKeynewinsertlookupdelete c_judy_ldel c_judy_lget c_judy_linsc_judyl_free_ptrJError_JError JudyLArrayJudyL_unJudyL nullError judyError judyErrorPtr memoryError