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 : Async_kernel__.Job_or_event_intf.Event.t kind |
| Job : Async_kernel__.Job.t kind |