Haskell failed me this time.
Mostly because I just don't know how to update data structures
effectively in a functional programming language yet. With
c++ I was able to easily augment data structures. It would be
nice to know how to do the same thing easily in Haskell.