J5r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghrstuvwxyz{|}~iDCBA@?>=<;:987UVWXYZ[\]^_`abcdefgh6543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHJKLMNOPQRSTGFEDCBAHIG@?>=<;:9876543210/.-,+*)('&%$#"! FE i  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJ KLMNOPQRSTKLMNOPQRSTUVWXYZ[\]^_`abcdefghVWXYZ[\]^_`abcdefghi1When libraries provide types for functions those # types are made instances of class i. That 5 class is used to exchange between Haskell functions 4 and a representation (i.e., a hidden pointer) that - can be used or is provided by foreign code. j)The associated type is the function type  as it is used in Haskell. kk can be used like Foreign.Ptr.nullFunPtr. ll takes a Haskell function and 1 gives a representation of it in the form of the  type expected by foreign code. mm) should be called on all values returned  by l& after they are no longer going to be 8 used. Most of the time this class method will just use  Foreign.Ptr.freeHaskellFunPtr. nn just inserts an action between  calls to l and m.  Of course, it can't be used when foreign code ' will save such action for latter use. o5Haskell FFI imports global variables as pointers. To : ease manipulation of such pointers they are encapsulated  by o so that values can be reached  directly, much like in an  Data.IORef. ijklmnopq opqijklmn ijklmnjklmnopq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMMNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~bindings-common-0.2 Bindings.CBindings.UtilitiesBindingswctypewctranstowuppertowlower towctrans iswxdigitiswupperiswspaceiswpunctiswprintiswloweriswgraphiswdigitiswctypeiswcntrliswblankiswalphaiswalnumwmemsetwmemmovewmemcpywmemcmpwmemchrwctobwcsxfrmwcstoulwcstoullwcstolwcstollwcstoldwcstokwcstofwcstodwcsstrwcsspn wcsrtombswcsrchrwcspbrkwcsncpywcsncmpwcsncatwcslenwcsftimewcscspnwcscpywcscollwcscmpwcschrwcscatwcrtombungetwcputwcputwchar mbsrtowcsmbsinitmbrtowcmbrlengetwchargetwcfwidefputwsfputwcfgetwsfgetwcbtowctimestrftimemktime localtimegmtimedifftimeclockwctombwcstombssystemstrtoullstrtoulstrtollstrtoldstrtolstrtofstrtodsrandreallocrandqsortmbtowcmbstowcsmblenmallocllabslabs getsuboptgetenvfreeexitcallocbsearchatollatolatoiatofatexitabsabort__Exitungetctmpfilesetvbufsetbufrewindrenameremoveputsputcharputcperrorgetchargetcfwriteftellfsetposfseekfreopenfreadfputsfputcfopenfgetsfgetposfgetcfflushferrorfeoffcloseclearerrsignalraisetruncltruncftrunctgammaltgammaftgammatanhltanhftanhtanltanftansqrtlsqrtfsqrtsinhlsinhfsinhsinlsinfsinscalbnlscalbnfscalbnscalblnlscalblnfscalblnroundlroundfroundrintlrintfrintremquolremquofremquo remainderl remainderf remainderpowlpowfpow nexttowardl nexttowardf nexttoward nextafterl nextafterf nextafter nearbyintl nearbyintf nearbyintnanlnanfnanmodflmodffmodflroundllroundflroundlrintllrintflrintlogbllogbflogblog2llog2flog2log1pllog1pflog1plog10llog10flog10logllogflogllroundlllroundfllroundllrintlllrintfllrintlgammallgammaflgammaldexplldexpfldexpilogblilogbfilogbhypotlhypotfhypotfrexplfrexpffrexpfmodlfmodffmodfminlfminffminfmaxlfmaxffmaxfmalfmaffmafloorlfloorffloorfdimlfdimffdimfabslfabsffabsexpm1lexpm1fexpm1exp2lexp2fexp2explexpfexperfclerfcferfcerflerfferfcoshlcoshfcoshcoslcosfcos copysignl copysignfcopysignceillceilfceilcbrtlcbrtfcbrtatanhlatanhfatanhatan2latan2fatan2atanlatanfatanasinhlasinhfasinhasinlasinfasinacoshlacoshfacoshacoslacosfacos setlocale localeconvtouppertolowerisxdigitisupperisspaceispunctisprintislowerisgraphisdigitiscntrlisblankisalphaisalnumCWctypeCWctransCWint Mbstate_tTm tm'tm_sec tm'tm_min tm'tm_hour tm'tm_mday tm'tm_mon tm'tm_year tm'tm_wday tm'tm_yday tm'tm_isdstLconvlconv'currency_symbollconv'decimal_pointlconv'frac_digitslconv'groupinglconv'int_curr_symbollconv'int_frac_digitslconv'mon_decimal_pointlconv'mon_groupinglconv'mon_thousands_seplconv'negative_signlconv'n_cs_precedeslconv'n_sep_by_spacelconv'n_sign_posnlconv'positive_signlconv'p_cs_precedeslconv'p_sep_by_spacelconv'p_sign_posnlconv'thousands_sepCallbackF nullCallback makeCallback freeCallback withCallbackGlobalVariablewriteGlobalVariablereadGlobalVariable_EDOM_EILSEQ_ERANGE_LC_ALL _LC_COLLATE _LC_CTYPE _LC_MONETARY _LC_NUMERIC_LC_TIME_SIG_DFL_SIG_ERR_SIG_IGN_SIGINT_SIGILL_SIGABRT_SIGFPE_SIGSEGV_SIGTERM_NULL_BUFSIZ__IOFBF__IOLBF__IONBF _SEEK_CUR _SEEK_END _SEEK_SET _FILENAME_MAX _FOPEN_MAX_EOF _EXIT_FAILURE _EXIT_SUCCESS _RAND_MAX _MB_CUR_MAX_TIMER_ABSTIME_WEOF