adjusted printing so it matches input files perfectly. this way you can do
a >runhaskell sudoku.hs < puzzle1 > out followed by a >diff out solution1
to see if it worked.