Module Job_or_event.Match

Idiomatic usage of Match is:

let job_or_event = ... in
let open Job_or_event.Match in
let K k = kind job_or_event in
match k, project k job_or_event with
| Event , event -> ... use event ...
| Job   , job   -> ... use job ...
type _ kind =
| Event : Event.t kind
| Job : Async_kernel__.Job.t kind
type packed =
| K : _ kind -> packed
val kind : t -> packed
val project : 'a kind -> t -> 'a