We're going to have to expose functions in order to test them. We can use a convention as indicated in [this Stack Overflow thread](http://stackoverflow.com/questions/14379185/function-privacy-and-unit-testing-haskell) if we're particularly concerned about someone using parts of the API that they shouldn't be touching.