This solver uses the exact cover problem approach to solve a given sudoku.
It will solve any sudoku, which has a side equal to n*n, where n >= 2. For example 4x4, 9x9, 16x16, ...
At the moment if you execute stack run it will just output the solution to the sudoku sudoku9x9 from the file TestSudokus.hs.
To solve your own sudokus, load it with ghci and pass an [[Int]] with your unsolved sudoku to the function solveSudoku. An empty square is marked with a 0. For example:
> solveSudoku [[2,4,0,0],[1,1,0,0],[0,3,0,0],[0,0,1,4]]
For a nicer output, you can use:
> putStr . showSudoku $ solveSudoku [[2,4,0,0],[1,1,0,0],[0,3,0,0],[0,0,1,4]]