@danscotton I agree, all of the parsers could return `Puzzle` instances.

As far as testing, I would probably do something like `expect(parser.parse).to eq my_puzzle`. This will work because you re-defined `Puzzle#==` to check for value rather than identity.