Recursive protocol conformance checking failure

If `Reducible` requires that `Self` conform to `ReducibleType` in order to access `Self.Element` instead of requiring a third type parameter, then `Latch<T>` must already conform to `ReducibleType` for it to be correctly inferred that it conforms to `ReducibleType`. Recursive inferencing of this nature is not currently supported in Swift; it seems like it would require a fixpoint of some description (but then that is my preferred When-You-Have-A Hammer).
This is the bit that causes `Latch<T>` to fail the test for conformance to `ReducibleType`. To wit, in order for it to pass the `ReducibleType` conformance type constraint, it must already conform to `ReducibleType`, but since it uses the typealiases herein to implement its conformance to `ReducibleType`, it’s recursive, and fails.