         4 read be> >>ttl
         2 read be> over type>> parse-rdata >>rdata ;
 
-: parse-message ( ba -- message )
+: parse-message ( byte-array -- message )
     [ message new ] dip
     binary [
         2 read be> >>id

        [ [ parse-rr ] replicate ] change-additional-section
    ] with-byte-reader ;

: >n/label ( string -- ba )
    [ length 1array ] [ utf8 encode ] bi B{ } append-as ;

: >name ( dn -- ba ) "." split [ >n/label ] map concat ;

: query>byte-array ( query -- ba )
    [
        {
            [ name>> >name ]

        first2 swap [ hex> ] bi@ [ 4 shift ] [ ] bi* bitor
    ] B{ } map-as byte-array>ipv6 ;

: parse-length-bytes ( -- sequence ) read1 read utf8 decode ;

: (parse-name) ( -- )
    peek1 [
