extern val wildcard : bind_pattern;
{{A rule applies to every host within the current domain.}}
+extern type srv_pattern;
+{{Like <tt>bind_pattern</tt>, but for SRV and TXT records, where underscores are allowed in hostnames}}
+extern val srv_literal : srv_domain -> srv_pattern;
+extern val srv_default : srv_pattern;
+extern val srv_wildcard : srv_pattern;
+
extern val dnsA : bind_pattern -> ip -> dnsRecord;
extern val dnsAAAA : bind_pattern -> ipv6 -> dnsRecord;
extern val dnsAFSDB : domain -> dnsRecord;
extern val dnsCNAME : bind_pattern -> 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 : bind_pattern -> no_newlines -> dnsRecord;
+extern val dnsSRV : srv_pattern -> int -> int -> int -> domain -> dnsRecord;
+extern val dnsTXT : srv_pattern -> no_newlines -> dnsRecord;
extern val dns : dnsRecord -> [Domain] {TTL : int};