A Haskell program for solving arbitrarily large Rubik's-like cubes