fn:for-each-pair(
$seq,
fn:tail($seq),
function($a, $b) { $a le $b }
)
if(empty($input)) then $zero
else local:fold-left(
fn:tail($input), $action($zero, fn:head($input)),
$action
)
if(empty($input)) then $zero
else $action(
fn:head($input),
local:fold-right(tail($input), $zero, $action)
)