## DNS Make RData and RRType the same thing so it becomes impossible to make a mistake. Tests needed: - encode and decode of each kind of RR - so far, have: txt, a, ns, mx, soa, cname, aaaa, srv. - that leaves: md, mf, mb, mg, mr, null, wks, ptr, hinfo, minfo - most of those are obsolete, so finding wild examples will be very difficult - encode and decode of several variants of packet, both sensible and not - misleading section length count - short, long - misleading label length - short, long - misleading rdata length - short, long - misleading txt record string length - short, long - looping domain-name (using compressed format) - compressed domain-name pointing into hyperspace - txt record with rdata filled with a list of empty byte-strings ## os.rkt and friends - move from quasiquoted to prefab structs - define a prefab struct for every evt? that we want to use - define lowest-level drivers for each prefab struct It feels like those lowest-level drivers are listening for *demand* i.e. they're listening for presence and are then acting to supply such demand. Think about the relationships between presence (both positive and negative), and interfacing to ad-hoc sources and sinks.