40>      !"#$%&'()*+,-./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. !A"#BC$DEFGHI%J&&' 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 K returned here (using L) 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 M". You are responsible for freeing  it with 8. 8 free() an $ 9 Makes a new ev_timer struct using M". You are responsible for freeing  it with ;. :; free() an # < Makes a new ev_async struct using M. You are responsible for  freeing it with =. = free() an A >  !"#$%&'()*+,-./0123456789:;<=>%()*+,-./24'&01$ 783#"9;5 :!<=6 >  !"#$%&'()*+,-./0123456789:;<=N      !"#$%&'()*+,-./0123456789:;<=>?@ABC%DEEFGHIJKLMKNOKPQR hlibev-0.2.7 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 mkEvTimerevTimerSetRepeat freeEvTimer mkEvAsync freeEvAsyncmkMutexCallback evTimerSetevSetLoopReleaseCBEvAsyncrepeatEvIofdevents EvWatcherPtr EvWatcherEvLoopbaseGHC.MVarMVarControl.Concurrent.MVarwithMVarForeign.Marshal.Allocmalloc