úÎ4;0W<      !"#$%&'()*+,-./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  5.  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  4.  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  2. 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 / and  0,. TODO: deprecate and replace by a datatype '()*+,-./01ISet 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  3. 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. 23456 Makes a new ev_io struct using K". You are responsible for freeing  it with 7. 7 free() an # 8 Makes a new ev_timer struct using K". You are responsible for freeing  it with 9. 9 free() an @? : Makes a new ev_async struct using K. You are responsible for  freeing it with ;. ; free() an > <  !"#$%&'()*+,-./0123456789:;<$'()*+,-.13&%/0# 672"894 !:;5 <  !"#$%&'()*+,-./0123456789:;L      !"#$%&'()*+,-./0123456789:;<=>?@AABCCDEFGHIJKILMINOP hlibev-0.2.4 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 EvTimerPtrEvIoPtr EvLoopPtr CEvFlagType CEventType evflag_auto evflag_noenvevbackend_selectevbackend_pollevbackend_epollevbackend_kqueueevbackend_devpollevbackend_portev_readev_writesetupLockingForLoopfreeIoCallbackfreeMutexCallbackfreeTimerCallbackfreeAsyncCallbackmkEvIofreeEvIo mkEvTimer freeEvTimer mkEvAsync freeEvAsyncmkMutexCallbackevSetLoopReleaseCBEvAsyncEvTimerrepeatEvIofdevents EvWatcherPtr EvWatcherEvLoopbaseGHC.MVarMVarControl.Concurrent.MVarwithMVarForeign.Marshal.Allocmalloc