Why'd I use upper bounds again?
Add unfoldM, to go with the same addition to conduit
Add test for unfoldM