Победил HXT, вынув из XML'ек условия задач для рассчётки. Всё ещё не понимаю, как может стрелка иметь тип ArrowXml a => a XmlTree XmlTree и при этом возвращать не одно значние, а несколько. Не понимаю, как это всё разветвляется и сливается обратно без необходимости делать map и concat. Аргх.
--Minoru, который думал, что он понял стрелки