declare fun {FoldL L F U} case L of nil then U [] X|Rest then {FoldL Rest F {F U X}} end end % {FoldL X1|X2|X3|...|Xn|nil F U} % == {FoldL X2|X3|...|Xn|nil F {F U X1}} % == {FoldL X3|...|Xn|nil F {F {F U X1} X2}} % == {FoldL ...|Xn|nil F {F {F {F U X1} X2} X3}} % ... % == {F ... {F {F {F {F U X1} X2} X3} ... Xn} {Browse {FoldL 7|6|5|4|nil Number.'-' 0}} % {Number.'-' {Number.'-' 0 7} 6} ... {Browse ((((0 - 7) - 6) - 5) - 4)}