removed One | Two | Three datatype in favor of checking legality within getMove; completed error checking so no input can break the game
refactored makeMove significantly, loop slightly
removed test board, minor refactoring
moved logic out of loop into gameOver helper function
got rid of extraneous MaybeT monad transformer
final small touches