úÎ3ã0:      !"#$%&'()*+,-./0123456789G: 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  3.  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  2.  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  0. 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. < =>?!@ABCDE"F##' 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  .,. TODO: deprecate and replace by a datatype %&'()*+,-./ISet 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  1. 2IMPORTANT: if you want multithreaded access to an ", you'll have  to acquire the G returned here (using H) 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. 01234 Makes a new ev_io struct using I". You are responsible for freeing  it with 5. 5 free() an ! 6 Makes a new ev_timer struct using I". You are responsible for freeing  it with 7. 7 free() an >= 8 Makes a new ev_async struct using I. You are responsible for  freeing it with 9. 9 free() an < :  !"#$%&'()*+,-./0123456789:"%&'()*+,/1$#-.!450 672 89 3 :  !"#$%&'()*+,-./0123456789J      !"#$%&'()*+,-./0123456789:;<=>??@AABCDEFGHIGJKGLMN hlibev-0.2.2 Network.LibevmkAsyncCallbackmkTimerCallback mkIoCallbackevNowevTimec_setnonblockingc_acceptc_writec_readc_close 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