extern type dnsRecord;
+extern type srv_domain;
+{{Like <tt>domain</tt>, but may contain underscores}}
+
extern val dnsA : host -> ip -> dnsRecord;
+extern val dnsAAAA : host -> ipv6 -> dnsRecord;
+extern val dnsAFSDB : domain -> dnsRecord;
extern val dnsCNAME : host -> domain -> dnsRecord;
extern val dnsMX : int -> domain -> dnsRecord;
extern val dnsNS : domain -> dnsRecord;
+extern val dnsSRV : srv_domain -> int -> int -> int -> domain -> dnsRecord;
+extern val dnsTXT : host -> no_newlines -> dnsRecord;
extern val dnsDefaultA : ip -> dnsRecord;
+extern val dnsDefaultAAAA : ipv6 -> dnsRecord;
+extern val dnsDefaultTXT : no_newlines -> dnsRecord;
extern val dns : dnsRecord -> [Domain] {TTL : int};