4*gn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmRRaw data format for each type.  &Raw data format for resource records. #Raw data format for DNS questions.  !"#$9Raw data format for the flags of DNS Query and Response. %&'()*+,-:Raw data format for the header of DNS Query and Response. ./012345,Raw data format for DNS Query and Response. 6789:;<Types for resource records. =>?@ABCDEFGType for domain. noHIJKMaking Question. pqLMR  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGnoHIJKpqLMR      !#""#$%&'()*+,%&'()*+,-./01234./0123456789:;6789:;< FEDCBA@?>==>?@ABCDEFGnoHIJKpqLMN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNG<FEDCBA@?>=HIJ56789:;-./01234$%&'()*+,!#"  K LM'rstuvwxyz{|}~'rstuvwxyz{|}~'rstustuvwxyzxyz{|}~NReceiving DNS data from  and parse it. 9 The second argument is a buffer size for the socket. OParsing DNS data. NOONNO PBComposing query. First argument is a number to identify response. QComposing DNS data. PQQPPQR#Abstract data type of DNS Resolver STUVWX(Abstract data type of DNS Resolver seed Y Type for resolver configuration Z[\]^Union type for  and  . Specify  to  " resolv.conf" or numeric IP address in  form. _`aDefault ZY.  [ is ` "/etc/ resolv.conf".  \ is 3,000,000 micro seconds.  ] is 512. bMaking X+ from an IP address of a DNS cache server. cGiving a thread-safe SR to the function of the second  argument. c should be passed to forkIO. d)Looking up resource records of a domain. e:Looking up a domain and returning an entire DNS Response. RSTUVWXYZ[\]^_`abcde^`_YZ[\]aXbRSTUVWcdeRSTUVWSTUVWXYZ[\]Z[\]^`__`abcde f Resolving  by F. g Resolving  by E. h Resolving G and its preference by B. i Resolving  by F via B. j Resolving  by E via B. k Resolving  by C. l Resolving G and its preference by ?. m Resolving G and its preference by >. fghijklmfghijklmfghijklmn  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm      !"#$%&'()*++,-./01233456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\\]^_`abcdefghijklmnopqrsttuvwxxyz{|}~[ dns-0.3.0Network.DNS.TypesNetwork.DNS.DecodeNetwork.DNS.EncodeNetwork.DNS.ResolverNetwork.DNS.LookupNetwork.DNS.InternalNetwork.DNS.StateBinary Network.DNSRDATARD_OTHRD_SRVRD_TXTRD_AAAARD_ARD_SOARD_PTRRD_MXRD_CNAMERD_NSResourceRecordrrnamerrtyperrttlrdlenrdataQuestionqnameqtypeRCODERefusedNotImplNameErrServFail FormatErrNoErrOPCODEOP_SSROP_INVOP_STDQorR QR_ResponseQR_QueryDNSFlagsqOrRopcode authAnswer trunCation recDesired recAvailablercode DNSHeader identifierflagsqdCountanCountnsCountarCount DNSFormatheaderquestionanswer authority additionalTYPEUNKNOWNSRVPTRSOACNAMEMXTXTNSAAAAADomain intToType typeToInttoType makeQuestion responseA responseAAAAreceivedecode composeQueryencodeResolvergenIddnsSock dnsTimeout dnsBufsize ResolvSeed ResolvConf resolvInfo resolvTimeout resolvBufsizeFileOrNumericHost RCHostName RCFilePathdefaultResolvConfmakeResolvSeed withResolverlookup lookupRawlookupA lookupAAAAlookupMX lookupAviaMXlookupAAAAviaMX lookupTXT lookupPTR lookupSRVrrDBrookup defaultQuerydefaultResponsePStatepsDomain psPositionSGetWStatewsDomain wsPositionSPut initialWStateput8put16put32putInt8putInt16putInt32 putByteString addPositionW fixedSized writeSizedwsPopwsPush getPosition addPositionpushpopget8get16get32getInt8getInt16getInt32 getNBytesgetNByteString initialStateiterSGetrunSGetrunSPutnetwork-2.3.0.6Network.SocketSocketreceiveDNSFormatdecodeResponse decodeFlags decodeHeader decodeQueries decodeType decodeQuery decodeRRsdecodeRR decodeRData decodeDomain ignoreClass+++encodeDNSFormat encodeHeader encodeFlagsencodeQuestionencodeRR encodeRDATA encodeDomain encodePointerencodePartialDomainaddrInfo rsTimeout rsBufsizebaseGHC.IOFilePathHostNameGHC.BaseString makeAddrInfo getRandom iproute-1.2.4 Data.IP.AddrIPv4IPv6 lookupXviaMX