When using spec/or without parameters spec/valid? and spec/explain are resulting in a contradiction.
Similar to or, s/or should fail to validate anything (so first call is good) but should report an error with explain (so explain result is bad).
Proposed: In the s/or explain, the logic maps over all preds to build a problem list about each value not matching, but the base case of no preds isn't explicitly handled. The change in the code checks for that case and builds a specific explain problem error for the overall s/or not matching. Patch includes fix and tests for (s/or) and (s/and) (which is ok).