Currently the only description I can find of how to use this macro is in the two examples. While examples are nice, they are not a replacement for comprehensive reference documentation. Currently I am trying to figure out how to wrap `KdlError` in an enum without getting rid of the `related` field.