rfold(i, f, [])   = i
  rfold(i, f, h::t) = f(h, rfold(i, f, t))