[Haskell-cafe] unfoldr with a little extra