diff --git a/src/matchArray.js b/src/matchArray.js
index <HASH>..<HASH> 100644
--- a/src/matchArray.js
+++ b/src/matchArray.js
@@ -17,7 +17,7 @@ module.exports = (currentMatch, subjectToMatch) => {
       .slice(0, matchArgs.length - 1)
       .every((arg, index) => matchOnSubArg(arg, subjectToMatch[index]))
 
-    if (deepEqual(matchArgs[matchArgs.length - 1].value, []) && matchAllSubArgs) {
+    if (matchAllSubArgs && deepEqual(matchArgs[matchArgs.length - 1].value, [])) {
       return option.Some(subjectToMatch[0])
     }
Flip args on match array validation

It's better to check first the value that already was evaluated.