Bulk types with class (1996)
Using lists for all of these so called bulk types is bad programming style... Everyone knows this, but everyone still uses lists! Why Because lists are well supported by the language: they admit pattern matching, there is built in syntax (list comprehensions), and there is a rich library of functions that operate over lists. Even experienced functional programmers knowingly write an O(n2 )algorithm where an O(n) algorithm would do, because it is just so convenient to use lists and append them rather than to design and implement and use an abstract data type.
Hopefully fp languages now provide collection implementations as libraries? (Some of the work on purely functional data-structures seems to require magnificent wizardry.)