     >r tag-children r> <q/a> ;
 
 : q/a>li ( q/a -- li )
-    [ q/a-question "strong" build-tag* f "br" build-tag* 2array ] keep
-    q/a-answer append "li" build-tag* ;
+    [ question>> "strong" build-tag* f "br" build-tag* 2array ] keep
+    answer>> append "li" build-tag* ;
 
 : xml>q/a ( xml -- q/a )
     [ "question" tag-named tag-children ] keep
     "answer" tag-named tag-children <q/a> ;
 
 : q/a>xml ( q/a -- xml )
-    [ q/a-question "question" build-tag* ] keep
-    q/a-answer "answer" build-tag*
+    [ question>> "question" build-tag* ] keep
+    answer>> "answer" build-tag*
     "\n" swap 3array "qa" build-tag* ;
 
 ! Lists of questions

    first2 >r f prefix r> [ html>question-list ] 2map <faq> ;

: header, ( faq -- )
    dup faq-header ,
    faq-lists first 1 -1 question-list>html nip , ;

: br, ( -- )
    "br" contained, nl, ;

: toc-link, ( question-list number -- )
    number>string "#" prepend "href" swap 2array 1array
    "a" swap [ question-list-title , ] tag*, br, ;

: toc, ( faq -- )
    "div" { { "style" "background-color: #eee; margin-left: 30%; margin-right: 30%; width: auto; padding: 5px; margin-top: 1em; margin-bottom: 1em" } } [
        "strong" [ "The big questions" , ] tag, br,
        faq-lists rest dup length [ toc-link, ] 2each
    ] tag*, ;

: faq-sections, ( question-lists -- )
    unclip question-list-seq length 1+ dupd
    [ question-list-seq length + ] accumulate nip
    0 -rot [ pick question-list>html [ , nl, ] bi@ 1+ ] 2each drop ;

: faq>html ( faq -- div )
    "div" [
        dup header,
        dup toc,
        faq-lists faq-sections,
    ] make-xml ;

: xml>faq ( xml -- faq )

! See http://factorcode.org/license.txt for BSD license.
USING: xml kernel sequences xml.utilities combinators.lib
math xml.data arrays assocs xml.generator xml.writer namespaces
math.parser io accessors ;
IN: faq

: find-after ( seq quot -- elem after )
