  We define EVL, a minimal higher-order functional language to deal with
generic events. The notion of generic event extends the well-known notion of
event traditionally used in a variety of areas, such as database management,
concurrency, reactive systems and cybersecurity. Generic events were introduced
in the context of a metamodel to specify obligations in access control systems.
Event specifications are represented as records and we use polymorphic record
types to type events in EVL. We show how the higher-order capabilities of EVL
can be used in the context of Complex Event Processing (CEP), to define
higher-order parameterised functions that deal with the usual CEP techniques.
