Xlib.Event seems to define the interestingly recursive type data XEvent = XEvent (Ptr XEvent) and otherwise give no information about that type.

I need this type to send an XEvent message to a window, is this a mistake or am I overlooking something in how to use it, or is the idea that the only way to make XEvent data is to make it in C and import it from there?