When using some-fn with 3 predicates the followed evaluation order is different and some-fn short-circuits differently:
with 2 predicates:
((some-fn #{42} #{1}) 1 42)
=> 42
with 3 predicates:
((some-fn #{42} #{1} :third-pred) 1 42)
=> 1
with 4 or more predicates:
((some-fn #{42} #{1} :third-pred :fourth+more-pred) 1 42)
=> 42
The docstring for some-fn says: ".... Note that f [the function returned by some-fn] is short-circuiting in that it will stop execution on the first argument that triggers a logical true result against the original predicates."
I read this as only the current 3-arity behavior complying with that.
Possible solution:
I think this needs a docstring fix replacing "the first argument" with "an argument". A patch to make the short-circuiting consistent might be a breaking change, due to returning possibly a different logical true value.
Also, this docstring line is the same as at "every-pred", which has the same different evaluation order and short-circuiting behavior with its 3 predicate arity versus its 2 and 4&more-arity. The impact of this with "every-pred" is less because every-pred only returns a boolean true or false, while "some-fn" returns a logical true value.