Simulate keyboard and mouse events using Haskell