This is some nice code I will maintain and extend as I encounter interesting computer science problems.