handle package:extensible-effects

Respond to requests of type t. The handlers themselves are expressed in open-recursion style.
A convenient pattern: given a request (in an open union), either handle it (using default Handler) or relay it. Handle implies that all requests of type t are dealt with, i.e., k (the response type) doesn't have t as part of its effect list. The Relay k r constraint ensures that k is an effectful computation (with effectlist r). Note that we can only handle the leftmost effect type (a consequence of the OpenUnion implementation.
A less commonly needed variant with an explicit handler (instead of Handle t r a k constraint).
You need this when using catchesDynE.