[Haskell-cafe] deconstruction of the list/backtracking applicative functor?