Solve Problem 64 in Haskell
Utilize monad-loops whileJust
Use an infinite data structure to guarantee tail succeeds
Use an infinite data structure to guarantee tail succeeds (reverted from commit d71f7927fddd1e2608056bac96b573728347eab4)

Unfortunately, it's ~20x slower than a regular list