What types of events are there? Currently mouse, keyboard, change, focus. What properties do they all hold? How do properties map from js to haskell?