Solving a wooden puzzle using Haskell