Also, a less forgetful version of subs might be useful:
withSubs xs e :: [a] -> Event b -> Event (b,a)
and then
subs xs e = snd <$> withSubs xs e
or, if you like,
subs = (fmap.fmap.fmap) snd withSubs
Btw, you can read the three fmaps directly from the signature of withSubs (two arrows plus one Event on the way to the pair).
- Conal