úÎ4P0l=      !"#$%&'()*+,-./0123456789:;<I= Wrap up an * so it can be delivered into C-land. This L resource is not garbage-collected, you are responsible for freeing it with  6.  Wrap up a * so it can be delivered into C-land. This L resource is not garbage-collected, you are responsible for freeing it with  5.  Wrap up an  3 so it can be delivered into C-land. This resource C is not garbage-collected, you are responsible for freeing it with  3. 9Fetch a the cached copy of the current time from a loop. <Fetches the current time from the operating system. Usually  is I preferred since it avoids a context switch by returning a cached value. Calls accept()# and sets the socket non-blocking.  Returns the default set of & flags >ILibev timestamp values are C doubles containing the (floating) number of  seconds since Jan 1, 1970.  is called by ev_set_loop_release_cb An . is called when you wakeup an event loop with   ev_async_send A : is called when a timer expires. It takes a pointer to an  ev_loop structure, a pointer to an ev_io structure, and an (unused?)  event mask. An  6 is called when a file descriptor becomes readable or $ writable. It takes a pointer to an ev_loop structure, a pointer to an  ev_io structure, and an event mask. !?"#@A$BCDEFG%H&&' is a bitfield used to pass flags into   . Values ((, ), etc.) are combined F with bitwise or. TODO: replace with a newtype with a monoid instance ''9 is a bitfield used to flag whether a file descriptor is / readable, writable, or both. Valid values are 0 and  1,. TODO: deprecate and replace by a datatype ()*+,-./012ISet up the given loop for mutex locking from haskell-land -- if you want 2 to touch the loop from other Haskell threads, you'll need to do this. The > two FunPtr objects returned need to be explicitly freed with  4. 2IMPORTANT: if you want multithreaded access to an %, you'll have  to acquire the I returned here (using J) whenever you call any  of the ev! functions. Very bad C-land crash/bang/boom could otherwise  result. +ALSO IMPORTANT: any changes you make to an % from another thread / while the event loop thread is blocked inside ev_loop() will NOT take 5 effect until the the event loop thread unblocks. You'll need to set up an  ev_async4 watcher in order to wake up the event loop thread. 34567 Makes a new ev_io struct using K". You are responsible for freeing  it with 8. 8 free() an $ 9 Makes a new ev_timer struct using K". You are responsible for freeing  it with :. : free() an # ; Makes a new ev_async struct using K. You are responsible for  freeing it with <. < free() an ? =  !"#$%&'()*+,-./0123456789:;<=%()*+,-./24'&01$ 783#"9:5 !;<6 =  !"#$%&'()*+,-./0123456789:;<L      !"#$%&'()*+,-./0123456789:;<=>?@A%BCCDEFGHIJKILMINOP hlibev-0.2.5 Network.LibevmkAsyncCallbackmkTimerCallback mkIoCallbackevNowevTimec_setnonblockingc_acceptc_writec_readc_closeevTimerRemaining evTimerAgain evTimerStop evTimerStart evTimerInit evAsyncStop evAsyncStart evAsyncSend evAsyncInitevIoStop evIoStartevIoInit evLoopDestroy evLoopNewevUnloopevLoop evDefaultLoopevRecommendedBackends EvTimestamp MutexCallback AsyncCallback TimerCallback IoCallback EvAsyncPtr EvTimerPtrEvTimerEvIoPtr EvLoopPtr CEvFlagType CEventType evflag_auto evflag_noenvevbackend_selectevbackend_pollevbackend_epollevbackend_kqueueevbackend_devpollevbackend_portev_readev_writesetupLockingForLoopfreeIoCallbackfreeMutexCallbackfreeTimerCallbackfreeAsyncCallbackmkEvIofreeEvIo mkEvTimer freeEvTimer mkEvAsync freeEvAsyncmkMutexCallbackevSetLoopReleaseCBEvAsyncrepeatEvIofdevents EvWatcherPtr EvWatcherEvLoopbaseGHC.MVarMVarControl.Concurrent.MVarwithMVarForeign.Marshal.Allocmalloc