fun foldr F y nil = y | foldr F y (x::xs) = F(x, foldr F y xs);