h&d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                           Safe-Inferred/ Safe-Inferred ? posix-apiAn unsliced byte sequence with NUL as the final byte. posix-apiCopies the slice, appending a NUL byte to the end.  posix-api1Copies the slice into pinned memory, appending a NUL byte to the end.  posix-api Convert a  consisting of only characters representable by ISO-8859-1. These are encoded with ISO-8859-1. Any character with a codepoint above U+00FF$ is replaced by an unspecified byte.  posix-apiGet a pointer to the payload of the managed C string. The behavior is undefined if the argument is not pinned.     Safe-Inferred posix-apiGet the current working directory without using the system locale to convert it to text. This is implemented with a safe FFI call since it may block. Safe-Inferred %'*1?  posix-apiFile Creation Flags posix-apiFile Status Flags posix-apiFile Descriptor Flags posix-apiThe O_RDONLY access mode. posix-apiThe O_WRONLY access mode. posix-apiThe O_RDWR access mode. posix-apiThe  O_NONBLOCK flag  posix-apiThe O_APPEND flag! posix-apiThe O_CREAT flag" posix-apiThe O_TRUNC flag# posix-apiThe O_EXCL flag !"# Safe-Inferred  $ posix-apiGet file descriptor flags. This uses the unsafe FFI to perform fcntl(fd,F_GETFD).% posix-api?@ABCDEFGHI Safe-Inferredz Safe-Inferred %'*1?58J posix-api,An address for a UNIX domain socket. The  http://pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/un.h.htmlPOSIX specification mandates two fields: sa_family_t sun_family Address family. char sun_path[] Socket pathname. 7However, the first field is omitted since it is always AF_UNIX1. It is adding during serialization. Although sun_path! is a null-terminated string, SocketAddressUnix should not have a trailing null byte. The conversion function encodeSocketAddressUnix adds the null terminator. The size of path should not equal or exceed the platform-dependent size of sun_path.M posix-api4An address for an Internet socket over IPv4. The  http://pubs.opengroup.org/onlinepubs/000095399/basedefs/netinet/in.h.htmlPOSIX specification mandates three fields: sa_family_t sin_family AF_INET in_port_t sin_port Port number struct in_addr sin_addr IP addressThis type omits the first field since is a constant that is only relevant for serialization purposes. The spec also mandates that sin_port and sin_addr be in network byte order, so keep in mind that these values are not immidiately useable.Q posix-apiThe  option_value data.S posix-apiThe sockaddr data. This is an extensible tagged union, so this library has chosen to represent it as byte array. It is up to platform-specific libraries to inhabit this type with values. The byte array backing this may be unpinned or pinned.U posix-apiReceive flags are given by MessageFlags Receive and send flags are given by MessageFlags Send. This is done because there are several flags that are applicable in either a receiving context or a sending context.W posix-apiThe direction of a message. The data constructor are only used at the type level as phantom arguments.Z posix-api$Which end of the socket to shutdown.\ posix-apiOptions used in the  option_name argument in  getsockopt or  setsockopt. c posix-api!A socket type. The spec mandates  SOCK_STREAM,  SOCK_DGRAM , and SOCK_SEQPACKET:. Other types may be available on a per-platform basis.TODO: Change this to SocketTypee posix-apiA socket communications domain, sometimes referred to as a family. The spec mandates AF_UNIX,  AF_UNSPEC, and AF_INET.g posix-apiPhantom for pointers to addrinfo6 in address resolution functions. According to POSIX: struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; struct addrinfo *ai_next; };h posix-apiThe AF_INET6 communications domain. POSIX declares raw sockets optional. However, they are included here for convenience. Please open an issue if this prevents this library from compiling on a POSIX-compliant operating system that anyone uses for haskell development.i posix-apiThe AF_INET communications domain.j posix-apiThe  AF_UNSPEC communications domain.k posix-apiThe AF_UNIX communications domain.l posix-apiThe  SOCK_STREAM socket type.m posix-apiThe  SOCK_DGRAM socket type.n posix-apiThe SOCK_RAW socket type. POSIX declares raw sockets optional. However, they are included here for convenience. Please open an issue if this prevents this library from compiling on a POSIX-compliant operating system that anyone uses for haskell development. Keep in mind that even though raw sockets may exist on all POSIX-compliant operating systems, they may differ in their behavior.o posix-apiThe SOCK_SEQPACKET socket type.p posix-apiThe MSG_OOB receive flag or send flag.q posix-apiThe MSG_PEEK receive flag.r posix-apiThe  MSG_WAITALL receive flag.s posix-apiThe  MSG_NOSIGNAL send flag.t posix-api'The default protocol for a socket type.u posix-apiThe  IPPROTO_RAW protocol.v posix-apiThe  IPPROTO_ICMP protocol.w posix-apiThe  IPPROTO_TCP protocol.x posix-apiThe  IPPROTO_UDP protocol.y posix-apiThe  IPPROTO_IP protocol.z posix-apiThe  IPPROTO_IPV6 protocol.{ posix-api)Disable further receive operations (e.g. SHUT_RD)| posix-api&Disable further send operations (e.g. SHUT_WR)} posix-api&Disable further send operations (e.g.  SHUT_RDWR)~ posix-apiSocket error status (e.g.  SOL_SOCKET) posix-apiSocket error status (e.g. SO_ERROR) posix-apiBind to device (e.g. SO_BINDTODEVICE) posix-api#Allow reuse of local address (e.g.  SO_REUSEADDR) posix-api6Transmission of broadcast messages is supported (e.g.  SO_BROADCAST) posix-apiGet  cmsg_type. posix-apiGet iov_base. posix-apiGet iov_len. posix-apiThe size of a serialized msghdr. posix-apiGet ai_flags. posix-apiSet ai_flags. posix-apiGet  ai_family. posix-apiGet  ai_socktype. posix-apiGet  ai_protocol. posix-apiGet  ai_addrlen. posix-apiGet ai_addr. posix-apiGet ai_next. posix-apiSet  ai_family. posix-apiSet  ai_socktype. posix-apiSet  ai_protocol. posix-apiThe size of a serialized addrinfo. posix-apiThe size of a serialized iovec. posix-api$The index and read functions ignore  sin_family . The write functions will set  sin_family to AF_INET.JKLMNOPQRSTUVWYXZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred %'?;@ posix-api3The size of a serialized internet socket address.  posix-api nonblocking) stream) defaultProtocol posix-api Variant of ? that allows setting flags on the newly-accepted connection. posix-api Variant of  that requests that the kernel not include the socket address in its reponse. posix-apiListening socket posix-apiMaximum socket address size posix-api8Set non-blocking and close-on-exec without extra syscall posix-api%Peer information and connected socket posix-apiListening socket posix-api8Set non-blocking and close-on-exec without extra syscall posix-apiConnected socket  Safe-Inferred1} posix-apiGet ai_flags. posix-apiGet  ai_family. posix-apiGet  ai_socktype. posix-apiGet  ai_protocol. posix-apiGet  ai_addrlen. posix-apiGet ai_addr. posix-apiGet ai_next.  Safe-Inferred1 posix-apiGet  sin_family. posix-apiGet  in_port_t. posix-apiGet sin_addr.saddr. This works on Linux because struct in_addr has a single 32-bit field. I do not know how to perform this in a portable way with hsc2hs. Safe-Inferred%1? Safe-Inferred  posix-apiThe timeout argument is omitted since it is nonsense to choose anything other than 0 when using the unsafe FFI.<=>?@ABCDEFGHI?@ABC<=>DEFGHI Safe-Inferred!%'*01?X posix-apiA data type corresponding to struct epoll_event. Linux defines this as: typedef union epoll_data { void *ptr; int fd; uint32_t u32; uint64_t u64; } epoll_data_t; struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User data variable */ };It is a little difficult to capture what this type conveys, but we make an attempt. The second argument to the Event type constructor is either Addr, Fd, Word32, or Word645. This corresponds to the four possibilities in the  epoll_data union type. As long as the user monomorphizes this type when using it, there should not be any performance penalty for the flexibility afforded by this approach. posix-api Epoll events posix-apiUser data variable, named data in struct epoll_event. posix-apiThe  EPOLL_CTL_ADD control operation. posix-apiThe  EPOLL_CTL_MOD control operation. posix-apiThe  EPOLL_CTL_DEL control operation. posix-apiThe  EPOLL_CLOEXEC flag. posix-apiThe EPOLLIN. event. Can appear in a request or a response. posix-apiThe EPOLLOUT. event. Can appear in a request or a response. posix-apiThe EPOLLPRI. event. Can appear in a request or a response. posix-apiThe EPOLLERR event. The  5http://man7.org/linux/man-pages/man2/epoll_ctl.2.htmlepoll_ctl documentation says " epoll_wait will always wait for this event; it is not necessary to set it in events". Consequently, in this library, it has been marked as only appearing in Response positions. posix-apiThe EPOLLHUP event. The  5http://man7.org/linux/man-pages/man2/epoll_ctl.2.htmlepoll_ctl documentation says " epoll_wait will always wait for this event; it is not necessary to set it in events". Consequently, in this library, it has been marked as only appearing in Response positions. posix-apiThe  EPOLLRDHUP. event. Can appear in a request or a response. posix-apiThe EPOLLET! event. Only appears in requests. posix-apiDoes the first event set entirely contain the second one? That is, is the second argument a subset of the first? posix-apiDoes the first event set contain any of the events from the second one? posix-apiRead events from struct epoll_event. posix-apiRead data.fd from struct epoll_event. posix-apiRead data.ptr from struct epoll_event. posix-apiRead data.u32 from struct epoll_event. posix-apiRead data.u64 from struct epoll_event. posix-apiWrite data.u64 from struct epoll_event. posix-apiSince  epoll_event< includes an unaligned 64-bit word, it is difficult to use hsc2hs to generate the marshalling code. Consequently, the offsets of events and data are currently hardcoded. Open an issue in this causes a problem on your platform.(<=>  Safe-Inferred '*1 posix-api:Wait for an I/O event on an epoll file descriptor. The  &https://linux.die.net/man/2/epoll_waitLinux man page includes more details. The timeout argument is omitted since it is nonsense to choose anything other than 0 when using the unsafe FFI. posix-api:Wait for an I/O event on an epoll file descriptor. The  &https://linux.die.net/man/2/epoll_waitLinux man page includes more details. The event buffer must be a pinned byte array. posix-apiAdd, modify, or remove entries in the interest list of the epoll instance referred to by the file descriptor epfd.  %https://linux.die.net/man/2/epoll_ctlLinux man page includes more details. posix-apiSize, ignored since Linux 2.6.8 posix-apiFlags posix-apiEPoll file descriptor posix-api Event buffer posix-apiMaximum events posix-apiNumber of events received posix-apiEPoll file descriptor posix-apiEvent buffer, must be pinned posix-apiMaximum events posix-apiTimeout in milliseconds, use -1 to block forever. posix-apiNumber of events received posix-apiEPoll file descriptor (epfd) posix-api Operation:  EPOLL_CTL_ADD,  EPOLL_CTL_MOD, or  EPOLL_CTL_DEL posix-api3File descriptor whose registration will be affected posix-api2A single event. This is read from, not written to.'<=>'<=> !"#$%&'()*+,,--..//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]]^__`abbccddefghhiijjkklmmnnopqrstuvwxyz{|}~26O3             OWXYZ        3(posix-api-0.7.0.0-LUqIbGpQ88gFaRbvhyDluh Posix.TypesForeign.C.String.ManagedPosix.Directory Posix.FilePosix.MessageQueueLinux.MessageQueue Posix.Poll Posix.Socket Linux.SocketPosix.Struct.AddressInfo.Peek'Posix.Struct.SocketAddressInternet.Peek Linux.Epoll AssertionPosix.File.TypesPosix.MessageQueue.TypesLinux.MessageQueue.TypesPosix.Poll.Types Posix.SelectPosix.Socket.TypesPosix.Socket.PlatformLinux.Socket.TypesuninterruptibleAcceptLinux.Epoll.TypesbaseSystem.Posix.TypesCNfdsManagedCString terminatedU terminated unterminated fromShortText fromBytespinnedFromBytespintouchfromLatinStringcontents$fShowManagedCString$fIsStringManagedCString$fMonoidManagedCString$fSemigroupManagedCString$fEqManagedCStringgetCurrentWorkingDirectory AccessMode CreationFlags StatusFlagsDescriptorFlagsreadOnly writeOnly readWrite nonblockingappendcreatetruncate exclusive!uninterruptibleGetDescriptorFlagsuninterruptibleGetStatusFlagsuninterruptibleOpenuninterruptibleOpenUntypedFlagsuninterruptibleOpenMode#uninterruptibleWriteBytesCompletely(uninterruptibleWriteBytesCompletelyErrnowriteBytesCompletelyErrnouninterruptibleWriteBytesuninterruptibleWriteByteArraywriteByteArraywriteMutableByteArrayuninterruptibleLinkuninterruptibleUnlinkcloseuninterruptibleCloseuninterruptibleErrorlessClose isReadOnly isWriteOnly isReadWriteopenuninterruptibleReceiveByteArrayuninterruptibleSendBytes closeOnExecExchangeRequestResponsePollFd$sel:descriptor:PollFd$sel:request:PollFd$sel:response:PollFdinputoutputerrorhangupinvalid isSubeventOfSocketAddressUnix$sel:path:SocketAddressUnixSocketAddressInternet$sel:port:SocketAddressInternet"$sel:address:SocketAddressInternet OptionValue SocketAddress MessageFlagsMessageSendReceive ShutdownType OptionNameLevelProtocol$sel:getProtocol:ProtocolTypeFamily AddressInfo Internet6Internet UnspecifiedUnixstreamdatagramrawsequencedPacket outOfBandpeekwaitAllnoSignaldefaultProtocol rawProtocolicmptcpudpipipv6readwrite levelSocket optionError bindToDevice reuseAddress broadcastpeekControlMessageHeaderLengthpeekControlMessageHeaderLevelpeekControlMessageHeaderTypepeekIOVectorBasepeekIOVectorLengthsizeofMessageHeaderpeekAddressInfoFlagspokeAddressInfoFlagssizeofAddressInfosizeofIOVectorpeekMessageHeaderNamepokeMessageHeaderNamepokeMessageHeaderNameLengthpokeMessageHeaderIOVectorpokeMessageHeaderIOVectorLengthpokeMessageHeaderControlpokeMessageHeaderControlLengthpokeMessageHeaderFlagspeekMessageHeaderNameLengthpeekMessageHeaderIOVectorpeekMessageHeaderIOVectorLengthpeekMessageHeaderControlpokeIOVectorBasepokeIOVectorLengthpeekMessageHeaderControlLengthpeekMessageHeaderFlagssizeofSocketAddressInternetencodeSocketAddressInternetdecodeSocketAddressInternetindexSocketAddressInternetencodeSocketAddressUnixuninterruptibleFreeAddressInfouninterruptibleSocketuninterruptibleSocketPairgetAddressInfouninterruptibleBinduninterruptibleListenconnectuninterruptibleConnectuninterruptibleConnectPtracceptaccept_uninterruptibleGetSocketNameuninterruptibleGetSocketOption!uninterruptibleSetSocketOptionIntuninterruptibleSetSocketOption'uninterruptibleSetSocketOptionByteArray sendByteArrayuninterruptibleSendMessageAuninterruptibleSendMessageBsendMutableByteArraysenduninterruptibleSenduninterruptibleSendByteArray#uninterruptibleSendMutableByteArrayuninterruptibleSendToByteArray&uninterruptibleSendToInternetByteArrayuninterruptibleSendToInternet%uninterruptibleSendToMutableByteArray-uninterruptibleSendToInternetMutableByteArrayreceivereceiveByteArrayuninterruptibleReceive&uninterruptibleReceiveMutableByteArray*uninterruptibleReceiveFromMutableByteArray"uninterruptibleReceiveFromInternet2uninterruptibleReceiveFromInternetMutableByteArray+uninterruptibleReceiveFromMutableByteArray_uninterruptibleReceiveFrom_uninterruptibleShutdownhostToNetworkShortnetworkToHostShorthostToNetworkLongnetworkToHostLong SocketFlagsdontWaitcontrolTruncate headerIncludesizeofUdpHeaderpokeUdpHeaderSourcePortpokeUdpHeaderDestinationPortpokeUdpHeaderLengthpokeUdpHeaderChecksumsizeofIpHeaderpokeIpHeaderVersionIhlpokeIpHeaderTypeOfServicepokeIpHeaderTotalLengthpokeIpHeaderIdentifierpokeIpHeaderFragmentOffsetpokeIpHeaderTimeToLivepokeIpHeaderProtocolpokeIpHeaderChecksumpokeIpHeaderSourceAddresspokeIpHeaderDestinationAddressapplySocketFlagsuninterruptibleAccept4uninterruptibleAccept4_flagsfamily socketTypeprotocol addressLengthaddressnextportuninterruptiblePoll#uninterruptiblePollMutablePrimArray PrimEpollDataEvent$sel:events:Event$sel:payload:EventEvents EpollFlagsControlOperationaddmodifydeletepriority readHangup edgeTriggeredcontainsAllEventscontainsAnyEvents sizeofEventpeekEventEventspeekEventDataFdpeekEventDataPtrpeekEventDataU32peekEventDataU64pokeEventDataU64uninterruptibleCreateuninterruptibleCreate1#uninterruptibleWaitMutablePrimArraywaitMutablePrimArray&uninterruptibleControlMutablePrimArrayassertMutablePrimArrayPinnedassertMutableByteArrayPinnedassertByteArrayPinnedGHC.BaseStringForeign.C.ErrorgetErrno OpenFlagsOpenModepeekAddressInfoFamilypeekAddressInfoSocketTypepeekAddressInfoProtocolpeekAddressInfoAddressLengthpeekAddressInfoAddresspeekAddressInfoNextpokeAddressInfoFamilypokeAddressInfoSocketTypepokeAddressInfoProtocol$fPrimSocketAddressInternetSocketAddressInternet6 $sel:port:SocketAddressInternet6$$sel:flowInfo:SocketAddressInternet6$$sel:addressA:SocketAddressInternet6$$sel:addressB:SocketAddressInternet6#$sel:scopeId:SocketAddressInternet6AddressInfoFlags"internalWriteSocketAddressInternetFdForeign.C.TypesCInt pinByteArraysizeofMultipleMessageHeaderpokeMultipleMessageHeaderName#pokeMultipleMessageHeaderNameLength!pokeMultipleMessageHeaderIOVector'pokeMultipleMessageHeaderIOVectorLength pokeMultipleMessageHeaderControl&pokeMultipleMessageHeaderControlLengthpokeMultipleMessageHeaderFlagspokeMultipleMessageHeaderLength#peekMultipleMessageHeaderNameLengthpeekMultipleMessageHeaderLength$fPrimEpollDataWord64indexByteArrayEpollreadByteArrayEpollwriteByteArrayEpollindexOffAddrEpollreadOffAddrEpollwriteOffAddrEpoll