Added various list procedures
Merge from upstream