Currently during fixpoint finding we blindly substitute Result (meaning "ok") into the formula, and if any issues arose we blindly assume that they are the same issue that would be rethrown if we substituted them into the formula. However in presence of mapErrors that condition can be violated.
Furthermore we do violate this condition because when we memoize compatibility, we rethrow the errors with the appropriate behaviors, so a recursively thrown compatibility issue would have a different behavior on it. A recursive structure thus could have an infinite number of errors with progressively deeper and deeper behaviors.
We should figure out a consistent choice of what we do in this situation, document it and make sure it's implemented correctly.