use-modules : sxml simple
use-modules : ice-9 match

; define a template
define template
   quote
     html
         head : title "test"
         body
             h1 "test"
             message "the header"
             p "it " : em "works!"
               br
               " it actually works!"

; transform it
define template2
 let loop
  : l template
  match l
    : 'message a ...
      ` p : @ : style "margin-left: 2em"
            strong ,(map loop a)
    : a ...
      map loop a 
    a
      . a

; write xml to the output port
sxml->xml template2

newline