// foldLeft's meaty bit case Cons(h,t) => foldLeft(t, f(b, h))(f) // foldRight meaty bit case Cons(x, xs) => f(x, foldRight(xs, b)(f))