For the best explanation of Generic Functions and there benefits look here http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html