% $Id$ declare fun {FoldR Ls Op Z} case Ls of E|Es then {Op E {FoldR Es Op Z}} else Z end end fun {Sum Ls} {FoldR Ls fun {$ X Y} X+Y end 0} end fun {Product Ls} {FoldR Ls Number.'*' 0} end fun {Concat LLs} {FoldR LLs fun {$ X Y} {Append X Y} end nil} end