I'm finally grtting around to wrapping up lots of implementation specific errors into more general ones, and using either this way doesn't seem to achieve it. How would I ensure that the only error in the Effect type at the top level is the high level one ?