úÎ4‚0„=      !"#$%&'()*+,-./0123456789:;<K= 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_timer 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. !@"#AB$CDEFGH%I&&' 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 J returned here (using K) 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 L". You are responsible for freeing  it with 8. 8 free() an $ 9 Makes a new ev_timer struct using L". You are responsible for freeing  it with :. M: free() an # ; Makes a new ev_async struct using L. You are responsible for  freeing it with <. < free() an @ =  !"#$%&'()*+,-./0123456789:;<=%()*+,-./24'&01$ 783#"9:5 !;<6 =  !"#$%&'()*+,-./0123456789:;<N      !"#$%&'()*+,-./0123456789:;<=>?@AB%CDDEFGHIJKLJMNJOPQR hlibev-0.2.6 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 freeEvAsyncmkMutexCallback evTimerSetevSetLoopReleaseCBEvAsyncrepeatEvIofdevents EvWatcherPtr EvWatcherEvLoopbaseGHC.MVarMVarControl.Concurrent.MVarwithMVarForeign.Marshal.AllocmallocevTimerSetRepeat