I expect that unlist(foolist) will help you. It has an option recursive which is TRUE by default.
So unlist(foolist, recursive = FALSE) will return the list of the documents, and then you can combine them by:
do.call(c, unlist(foolist, recursive=FALSE))
do.call just applies the function c to the elements of the obtained list