The tm package extends c so that, if given a set of PlainTextDocuments it automatically creates a Corpus. Unfortunately,
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