implemented tail
drop and dropwhile implemented
setHead
init implemented
foldLeft
tailrec versions of sum and product
length in terms of foldLeft
reverse with fold