diff --git a/.eslintrc b/.eslintrc
index 94cc07932..804a2c2d3 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -74,6 +74,7 @@
     "no-unused-labels": "error",
     "no-useless-call": "error",
     "no-useless-concat": "error",
+    "prefer-promise-reject-errors": "error",
     "wrap-iife": ["error", "any"],
     "yoda": ["error", "never", {
       "exceptRange": true,
diff --git a/src/core/evaluator.js b/src/core/evaluator.js
index bc67fafe8..0faa0978a 100644
--- a/src/core/evaluator.js
+++ b/src/core/evaluator.js
@@ -843,7 +843,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
           operatorList.addOp(fn, pattern.getIR());
           return Promise.resolve();
         }
-        return Promise.reject('Unknown PatternType: ' + typeNum);
+        return Promise.reject(new Error('Unknown PatternType: ' + typeNum));
       }
       // TODO shall we fail here?
       operatorList.addOp(fn, args);