-- | Creates an /intersection/ 'Event'.
compositeEvent :: (AtomicEvent e, Typeable e, Show e, Ord e) => Set e -> Event
compositeEvent set | Set.null set = emptyEvent
                   | otherwise    = Set.foldr ((&) . EvAtom) emptyEvent set
compositeEvent :: (AtomicEvent e, Typeable e, Show e, Ord e) => Set e -> Event
compositeEvent set | Set.null set = emptyEvent
                   | otherwise    = Set.foldr ((&) . EvAtom) emptyEvent set
compositeEvent set | Set.null set = emptyEvent
                   | otherwise    = Set.foldr ((&) . EvAtom) emptyEvent set