Sudoku solver in Haskell, using monadic backtracking
See the paper Kiselyov, Shan, Friedman, Sabry (2005), Backtracking, Interleaving, and Terminating Monad Transformers, ICFP’05.
Compile with ghc (requires lenses library), and run at the command line.