@@ -14,7 +14,6 @@ import Data.GADT.Compare.TH
1414#else
1515import Data.GADT.Compare
1616 (GOrdering(..), (:~:)(..), GEq(..), GCompare(..))
17−import Control.Monad (ap)
1817#endif
1918
2019data EventTag
@@ -238,156 +237,141 @@ instance GEq EventName
238237 geq Touchcancel Touchcancel = return Refl
239238 geq _ _ = Nothing
240239
241−newtype GComparing a b t = GComparing (Either (GOrdering a b) t)
242−
243−instance Functor (GComparing a b) where fmap f (GComparing x) = GComparing (either Left (Right . f) x)
244−instance Monad (GComparing a b) where
245− return = GComparing . Right
246− GComparing (Left x) >>= f = GComparing (Left x)
247− GComparing (Right x) >>= f = f x
248−instance Applicative (GComparing a b) where
249− pure = return
250− (<*>) = ap
251−
252−runGComparing (GComparing x) = either id id x
253−
254240instance GCompare EventName
255− where gcompare Abort Abort = runGComparing $ return GEQ
241+ where gcompare Abort Abort = GEQ
256242 gcompare Abort _ = GLT
257243 gcompare _ Abort = GGT
258− gcompare Blur Blur = runGComparing $ return GEQ
244+ gcompare Blur Blur = GEQ
259245 gcompare Blur _ = GLT
260246 gcompare _ Blur = GGT
261− gcompare Change Change = runGComparing $ return GEQ
247+ gcompare Change Change = GEQ
262248 gcompare Change _ = GLT
263249 gcompare _ Change = GGT
264− gcompare Click Click = runGComparing $ return GEQ
250+ gcompare Click Click = GEQ
265251 gcompare Click _ = GLT
266252 gcompare _ Click = GGT
267− gcompare Contextmenu Contextmenu = runGComparing $ return GEQ
253+ gcompare Contextmenu Contextmenu = GEQ
268254 gcompare Contextmenu _ = GLT
269255 gcompare _ Contextmenu = GGT
270− gcompare Dblclick Dblclick = runGComparing $ return GEQ
256+ gcompare Dblclick Dblclick = GEQ
271257 gcompare Dblclick _ = GLT
272258 gcompare _ Dblclick = GGT
273− gcompare Drag Drag = runGComparing $ return GEQ
259+ gcompare Drag Drag = GEQ
274260 gcompare Drag _ = GLT
275261 gcompare _ Drag = GGT
276− gcompare Dragend Dragend = runGComparing $ return GEQ
262+ gcompare Dragend Dragend = GEQ
277263 gcompare Dragend _ = GLT
278264 gcompare _ Dragend = GGT
279− gcompare Dragenter Dragenter = runGComparing $ return GEQ
265+ gcompare Dragenter Dragenter = GEQ
280266 gcompare Dragenter _ = GLT
281267 gcompare _ Dragenter = GGT
282− gcompare Dragleave Dragleave = runGComparing $ return GEQ
268+ gcompare Dragleave Dragleave = GEQ
283269 gcompare Dragleave _ = GLT
284270 gcompare _ Dragleave = GGT
285− gcompare Dragover Dragover = runGComparing $ return GEQ
271+ gcompare Dragover Dragover = GEQ
286272 gcompare Dragover _ = GLT
287273 gcompare _ Dragover = GGT
288− gcompare Dragstart Dragstart = runGComparing $ return GEQ
274+ gcompare Dragstart Dragstart = GEQ
289275 gcompare Dragstart _ = GLT
290276 gcompare _ Dragstart = GGT
291− gcompare Drop Drop = runGComparing $ return GEQ
277+ gcompare Drop Drop = GEQ
292278 gcompare Drop _ = GLT
293279 gcompare _ Drop = GGT
294− gcompare Error Error = runGComparing $ return GEQ
280+ gcompare Error Error = GEQ
295281 gcompare Error _ = GLT
296282 gcompare _ Error = GGT
297− gcompare Focus Focus = runGComparing $ return GEQ
283+ gcompare Focus Focus = GEQ
298284 gcompare Focus _ = GLT
299285 gcompare _ Focus = GGT
300− gcompare Input Input = runGComparing $ return GEQ
286+ gcompare Input Input = GEQ
301287 gcompare Input _ = GLT
302288 gcompare _ Input = GGT
303− gcompare Invalid Invalid = runGComparing $ return GEQ
289+ gcompare Invalid Invalid = GEQ
304290 gcompare Invalid _ = GLT
305291 gcompare _ Invalid = GGT
306− gcompare Keydown Keydown = runGComparing $ return GEQ
292+ gcompare Keydown Keydown = GEQ
307293 gcompare Keydown _ = GLT
308294 gcompare _ Keydown = GGT
309− gcompare Keypress Keypress = runGComparing $ return GEQ
295+ gcompare Keypress Keypress = GEQ
310296 gcompare Keypress _ = GLT
311297 gcompare _ Keypress = GGT
312− gcompare Keyup Keyup = runGComparing $ return GEQ
298+ gcompare Keyup Keyup = GEQ
313299 gcompare Keyup _ = GLT
314300 gcompare _ Keyup = GGT
315− gcompare Load Load = runGComparing $ return GEQ
301+ gcompare Load Load = GEQ
316302 gcompare Load _ = GLT
317303 gcompare _ Load = GGT
318− gcompare Mousedown Mousedown = runGComparing $ return GEQ
304+ gcompare Mousedown Mousedown = GEQ
319305 gcompare Mousedown _ = GLT
320306 gcompare _ Mousedown = GGT
321− gcompare Mouseenter Mouseenter = runGComparing $ return GEQ
307+ gcompare Mouseenter Mouseenter = GEQ
322308 gcompare Mouseenter _ = GLT
323309 gcompare _ Mouseenter = GGT
324− gcompare Mouseleave Mouseleave = runGComparing $ return GEQ
310+ gcompare Mouseleave Mouseleave = GEQ
325311 gcompare Mouseleave _ = GLT
326312 gcompare _ Mouseleave = GGT
327− gcompare Mousemove Mousemove = runGComparing $ return GEQ
313+ gcompare Mousemove Mousemove = GEQ
328314 gcompare Mousemove _ = GLT
329315 gcompare _ Mousemove = GGT
330− gcompare Mouseout Mouseout = runGComparing $ return GEQ
316+ gcompare Mouseout Mouseout = GEQ
331317 gcompare Mouseout _ = GLT
332318 gcompare _ Mouseout = GGT
333− gcompare Mouseover Mouseover = runGComparing $ return GEQ
319+ gcompare Mouseover Mouseover = GEQ
334320 gcompare Mouseover _ = GLT
335321 gcompare _ Mouseover = GGT
336− gcompare Mouseup Mouseup = runGComparing $ return GEQ
322+ gcompare Mouseup Mouseup = GEQ
337323 gcompare Mouseup _ = GLT
338324 gcompare _ Mouseup = GGT
339− gcompare Mousewheel Mousewheel = runGComparing $ return GEQ
325+ gcompare Mousewheel Mousewheel = GEQ
340326 gcompare Mousewheel _ = GLT
341327 gcompare _ Mousewheel = GGT
342− gcompare Scroll Scroll = runGComparing $ return GEQ
328+ gcompare Scroll Scroll = GEQ
343329 gcompare Scroll _ = GLT
344330 gcompare _ Scroll = GGT
345− gcompare Select Select = runGComparing $ return GEQ
331+ gcompare Select Select = GEQ
346332 gcompare Select _ = GLT
347333 gcompare _ Select = GGT
348− gcompare Submit Submit = runGComparing $ return GEQ
334+ gcompare Submit Submit = GEQ
349335 gcompare Submit _ = GLT
350336 gcompare _ Submit = GGT
351− gcompare Wheel Wheel = runGComparing $ return GEQ
337+ gcompare Wheel Wheel = GEQ
352338 gcompare Wheel _ = GLT
353339 gcompare _ Wheel = GGT
354− gcompare Beforecut Beforecut = runGComparing $ return GEQ
340+ gcompare Beforecut Beforecut = GEQ
355341 gcompare Beforecut _ = GLT
356342 gcompare _ Beforecut = GGT
357− gcompare Cut Cut = runGComparing $ return GEQ
343+ gcompare Cut Cut = GEQ
358344 gcompare Cut _ = GLT
359345 gcompare _ Cut = GGT
360− gcompare Beforecopy Beforecopy = runGComparing $ return GEQ
346+ gcompare Beforecopy Beforecopy = GEQ
361347 gcompare Beforecopy _ = GLT
362348 gcompare _ Beforecopy = GGT
363− gcompare Copy Copy = runGComparing $ return GEQ
349+ gcompare Copy Copy = GEQ
364350 gcompare Copy _ = GLT
365351 gcompare _ Copy = GGT
366− gcompare Beforepaste Beforepaste = runGComparing $ return GEQ
352+ gcompare Beforepaste Beforepaste = GEQ
367353 gcompare Beforepaste _ = GLT
368354 gcompare _ Beforepaste = GGT
369− gcompare Paste Paste = runGComparing $ return GEQ
355+ gcompare Paste Paste = GEQ
370356 gcompare Paste _ = GLT
371357 gcompare _ Paste = GGT
372− gcompare Reset Reset = runGComparing $ return GEQ
358+ gcompare Reset Reset = GEQ
373359 gcompare Reset _ = GLT
374360 gcompare _ Reset = GGT
375− gcompare Search Search = runGComparing $ return GEQ
361+ gcompare Search Search = GEQ
376362 gcompare Search _ = GLT
377363 gcompare _ Search = GGT
378− gcompare Selectstart Selectstart = runGComparing $ return GEQ
364+ gcompare Selectstart Selectstart = GEQ
379365 gcompare Selectstart _ = GLT
380366 gcompare _ Selectstart = GGT
381− gcompare Touchstart Touchstart = runGComparing $ return GEQ
367+ gcompare Touchstart Touchstart = GEQ
382368 gcompare Touchstart _ = GLT
383369 gcompare _ Touchstart = GGT
384− gcompare Touchmove Touchmove = runGComparing $ return GEQ
370+ gcompare Touchmove Touchmove = GEQ
385371 gcompare Touchmove _ = GLT
386372 gcompare _ Touchmove = GGT
387− gcompare Touchend Touchend = runGComparing $ return GEQ
373+ gcompare Touchend Touchend = GEQ
388374 gcompare Touchend _ = GLT
389375 gcompare _ Touchend = GGT
390− gcompare Touchcancel Touchcancel = runGComparing $ return GEQ
391− gcompare Touchcancel _ = GLT
392− gcompare _ Touchcancel = GGT
376+ gcompare Touchcancel Touchcancel = GEQ
393377#endif