The discussion here on specialized versions for Vector is highly related at a more abstract level:
Vector