web application testing in haskell using quickcheck and state machines