~ chicken-core (chicken-5) eb4f5db11ae84661df7513a29a7fc378218abe96


commit eb4f5db11ae84661df7513a29a7fc378218abe96
Author:     megane <meganeka@gmail.com>
AuthorDate: Tue Nov 27 15:28:58 2018 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sat Mar 9 20:30:47 2019 +1300

    Add more useful first line for scrutinizer messages
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/scrutinizer.scm b/scrutinizer.scm
index 41e91793..b3378582 100644
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -170,12 +170,6 @@
 	(else #f)))
 
 (define (scrutinize node db complain specialize strict block-compilation)
-  (define (report-notice loc msg . args)
-    (when *complain?*
-      (##sys#notice
-       (conc (location-name loc)
-	     (sprintf "~?" msg args)))))
-
   (define (report loc msg . args)
     (when *complain?*
       (warning
@@ -2502,7 +2496,7 @@
 	(sprintf "`~a' from module `~a'" (second r) (first r))
 	(sprintf "`~a'" sym))))
 
-(define (report2 report-f location-node-candidates loc msg . args)
+(define (report2 short report-f location-node-candidates loc msg . args)
   (define (file-location)
     (any (lambda (n) (and (not (string=? "" (node-source-prefix n)))
 		     (node-source-prefix n)))
@@ -2510,19 +2504,20 @@
   (when *complain?*
     (report-f
      (conc
-      "Type mismatch"
+      short
       (let ((l (file-location))) (if l (conc " " l) ""))
       (string-add-indent
        (conc "\n" (location-name loc "") (sprintf "~?" msg args))
        "  ")))))
 
-(define (report-notice location-node-candidates loc msg . args)
-  (apply report2 ##sys#notice location-node-candidates loc msg args))
+(define (report-notice reason location-node-candidates loc msg . args)
+  (apply report2 reason ##sys#notice location-node-candidates loc msg args))
 
 ;;; Reports
 
 (define (r-invalid-called-procedure-type loc node xptype ptype)
   (report2
+   "Invalid procedure"
    warning
    (list node)
    loc
@@ -2531,7 +2526,7 @@
     "~%~%"
     "~a"
     "~%~%"
-    "Procedure in a procedure call has invalid type"
+    "The procedure has invalid type"
     "~%~%"
     "~a"
     "~%~%"
@@ -2544,6 +2539,7 @@
 
 (define (r-proc-call-argument-count-mismatch loc node pname exp-count argc ptype)
   (report2
+   "Wrong number of arguments"
    warning
    (list node)
    loc
@@ -2567,6 +2563,7 @@
 
 (define (r-proc-call-argument-type-mismatch loc node pname i xptype atype ptype)
   (report2
+   "Invalid argument"
    warning
    (list node)
    loc
@@ -2594,7 +2591,6 @@
    (variable-from-module pname)
    (type->pp-string ptype)))
 
-
 (define (r-proc-call-argument-value-count loc call-node i arg-node atype)
   (define (p-arg-expr)
     (define (p-expr)
@@ -2609,7 +2605,7 @@
 			  (pname (car (node-parameters pnode)))
 			  (ptype (variable-mark pname '##compiler#type)))
 		 (sprintf (string-append
-			   "It is a call to ~a which has this type"
+			   "It is a call to ~a which has type"
 			   "~%~%"
 			   "~a"
 			   "~%~%"
@@ -2618,57 +2614,46 @@
 			  (type->pp-string ptype)
 			  (p-expr)))))
 	(p-expr)))
-  (define pn
-    (if (zero? i)
-	""
-	(sprintf " `~a'"
-		 (strip-namespace (fragment (first (node-subexpressions call-node)))))))
+  (define (p short long)
+    (report2
+     short
+     warning
+     (list arg-node call-node)
+     loc
+     (string-append
+      "In procedure call"
+      "~%~%"
+      "~a"
+      "~%~%"
+      "Argument #~a to procedure~a ~a"
+      "~%~%"
+      "~a")
+     (pp-fragment call-node)
+     i
+     (if (zero? i)
+	 ""
+	 (sprintf " `~a'"
+		  (strip-namespace (fragment (first (node-subexpressions call-node))))))
+     long
+     (p-arg-expr)))
   (if (zero? (length atype))
-      (report2
-       warning
-       (list arg-node call-node)
-       loc
-       (string-append
-	"In procedure call"
-	"~%~%"
-	"~a"
-	"~%~%"
-	"Argument #~a to procedure~a does not return any values."
-	"~%~%"
-	"~a")
-       (pp-fragment call-node)
-       i
-       pn
-       (p-arg-expr))
-      (report2
-       warning
-       (list arg-node call-node)
-       loc
-       (string-append
-	"In procedure call"
-	"~%~%"
-	"~a"
-	"~%~%"
-	"Argument #~a to procedure~a returns ~a values but 1 is expected."
-	"~%~%"
-	"~a")
-       (pp-fragment call-node)
-       i
-       pn
-       (length atype)
-       (p-arg-expr))))
+      (p "Not enough argument values"
+	 "does not return any values.")
+      (p "Too many argument values"
+	 (sprintf "returns ~a values but 1 is expected." (length atype)))))
 
 (define (r-pred-call-always-true loc node pname pred-type atype)
   ;; pname is "... proc call to predicate `foo' "
   (report-notice
+   "Predicate is always true"
    (list node)
    loc
    (string-append
-    "In predicate call"
+    "In procedure call"
     "~%~%"
     "~a"
     "~%~%"
-    "Predicate call will always return true."
+    "The predicate will always return true."
     "~%~%"
     "Procedure ~a is a predicate for"
     "~%~%"
@@ -2684,14 +2669,15 @@
 
 (define (r-pred-call-always-false loc node pname pred-type atype)
   (report-notice
+   "Predicate is always false"
    (list node)
    loc
    (string-append
-    "In predicate call"
+    "In procedure call"
     "~%~%"
     "~a"
     "~%~%"
-    "Predicate call will always return false."
+    "The predicate will always return false."
     "~%~%"
     "Procedure ~a is a predicate for"
     "~%~%"
@@ -2707,6 +2693,7 @@
 
 (define (r-cond-test-always-true loc if-node test-node t)
   (report-notice
+   "Test is always true"
    (list test-node if-node)
    loc
    (string-append
@@ -2722,6 +2709,7 @@
 
 (define (r-cond-test-always-false loc if-node test-node)
   (report-notice
+   "Test is always false"
    (list test-node if-node)
    loc
    (string-append
@@ -2735,6 +2723,7 @@
 (define (r-zero-values-for-the loc node the-type)
   ;; (the t r) expects r returns exactly 1 value
   (report2
+   "Not enough values"
    warning
    (list node)
    loc
@@ -2751,6 +2740,7 @@
 
 (define (r-too-many-values-for-the loc node the-type rtypes)
   (report2
+   "Too many values"
    warning
    (list node)
    loc
@@ -2770,6 +2760,7 @@
 
 (define (r-type-mismatch-in-the loc node first-rtype the-type)
   (report2
+   "Type mismatch"
    warning
    (list node)
    loc
@@ -2795,14 +2786,14 @@
   (define (pp-type t) (string-add-indent (type->pp-string t) "  "))
   (quit-compiling
    (string-append
-    "Type mismatch"
+    "No typecase match"
     "~a"
     "~a"
     "In `compiler-typecase' expression"
     "~%~%"
     "  ~a"
     "~%~%"
-    "  Tested expression in `compiler-typecase' does not match any case."
+    "  Tested expression does not match any case."
     "~%~%"
     "  The expression has type"
     "~%~%"
@@ -2821,6 +2812,7 @@
 
 (define (r-cond-branch-value-count-mismatch loc node c-node a-node c-types a-types)
   (report2
+   "Branch values mismatch"
    warning
    (list a-node node)
    loc
@@ -2829,7 +2821,7 @@
     "~%~%"
     "~a"
     "~%~%"
-    "The branches have different number of returned values."
+    "The branches have different numbers of values."
     "~%~%"
     "The true branch returns ~a value~a"
     "~%~%"
@@ -2846,6 +2838,7 @@
 
 (define (r-toplevel-var-assignment-type-mismatch loc node atype var xptype value-node)
   (report2
+   "Invalid assignment"
    warning
    (list node value-node)
    loc
@@ -2871,6 +2864,7 @@
 
 (define (r-deprecated-identifier loc node id #!optional suggestion)
   (report2
+   (sprintf "Deprecated identifier `~a'" (strip-namespace id))
    warning
    (list node)
    loc
diff --git a/tests/scrutinizer-message-format.expected b/tests/scrutinizer-message-format.expected
index c15f1292..8384c6d4 100644
--- a/tests/scrutinizer-message-format.expected
+++ b/tests/scrutinizer-message-format.expected
@@ -5,7 +5,7 @@ Warning: literal in operator position: (1 2)
 
 Warning: literal in operator position: (1 2)
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Wrong number of arguments (test-scrutinizer-message-format.scm:XXX) 
   In `r-proc-call-argument-count-mismatch', a toplevel procedure
   In procedure call
 
@@ -17,7 +17,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     ('aXXX 'bXXX --> (pair 'aXXX 'bXXX))
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Invalid argument (test-scrutinizer-message-format.scm:XXX) 
   In `r-proc-call-argument-type-mismatch', a toplevel procedure
   In procedure call
 
@@ -35,7 +35,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (list -> fixnum)
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Too many argument values (test-scrutinizer-message-format.scm:XXX) 
   In `r-proc-call-argument-value-count', a toplevel procedure
   In procedure call
 
@@ -43,7 +43,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
   Argument #1 to procedure `list' returns 2 values but 1 is expected.
 
-  It is a call to `cpu-time' from module `chicken.time' which has this type
+  It is a call to `cpu-time' from module `chicken.time' which has type
 
     (-> fixnum fixnum)
 
@@ -51,7 +51,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (chicken.time#cpu-time)
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Not enough argument values (test-scrutinizer-message-format.scm:XXX) 
   In `r-proc-call-argument-value-count', a toplevel procedure
   In procedure call
 
@@ -59,7 +59,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
   Argument #1 to procedure `vector' does not return any values.
 
-  It is a call to `values' from module `scheme' which has this type
+  It is a call to `values' from module `scheme' which has type
 
     (procedure (#!rest values) . *)
 
@@ -70,13 +70,13 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 Warning: In `r-proc-call-argument-value-count', a toplevel procedure
   expected a single result in `let' binding of `gXXX', but received zero results
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Branch values mismatch (test-scrutinizer-message-format.scm:XXX) 
   In `r-cond-branch-value-count-mismatch', a toplevel procedure
   In conditional expression
 
     (if (the * 1) 1 (scheme#values 1 2))
 
-  The branches have different number of returned values.
+  The branches have different numbers of values.
 
   The true branch returns 1 value
 
@@ -86,13 +86,13 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (scheme#values 1 2)
 
-Warning: Type mismatch
+Warning: Invalid procedure
   In `r-invalid-called-procedure-type', a toplevel procedure
   In procedure call
 
     (1 2)
 
-  Procedure in a procedure call has invalid type
+  The procedure has invalid type
 
     fixnum
 
@@ -100,13 +100,13 @@ Warning: Type mismatch
 
     (* -> *)
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Predicate is always true (test-scrutinizer-message-format.scm:XXX) 
   In `r-pred-call-always-true', a toplevel procedure
-  In predicate call
+  In procedure call
 
     (scheme#list? '())
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -116,13 +116,13 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     null
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Predicate is always false (test-scrutinizer-message-format.scm:XXX) 
   In `r-pred-call-always-false', a toplevel procedure
-  In predicate call
+  In procedure call
 
     (scheme#symbol? 1)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -132,7 +132,7 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     fixnum
 
-Note: Type mismatch
+Note: Test is always true
   In `r-cond-test-always-true', a toplevel procedure
   In conditional expression
 
@@ -142,7 +142,7 @@ Note: Type mismatch
 
     symbol
 
-Note: Type mismatch
+Note: Test is always false
   In `r-cond-test-always-false', a toplevel procedure
   In conditional expression
 
@@ -166,7 +166,7 @@ Warning: Type mismatch
 
     symbol
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Not enough values (test-scrutinizer-message-format.scm:XXX) 
   In `r-zero-values-for-the', a toplevel procedure
   In expression
 
@@ -176,7 +176,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     symbol
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Too many values (test-scrutinizer-message-format.scm:XXX) 
   In `r-too-many-values-for-the', a toplevel procedure
   In expression
 
@@ -204,7 +204,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     symbol
 
-Warning: Type mismatch
+Warning: Invalid assignment
   In `r-toplevel-var-assignment-type-mismatch', a toplevel procedure
   In assignment
 
@@ -220,7 +220,7 @@ Warning: Type mismatch
 
     boolean
 
-Warning: Type mismatch
+Warning: Deprecated identifier `deprecated-foo'
   In `r-deprecated-identifier', a toplevel procedure
   In expression
 
@@ -228,7 +228,7 @@ Warning: Type mismatch
 
   Use of deprecated identifier `deprecated-foo'.
 
-Warning: Type mismatch
+Warning: Deprecated identifier `deprecated-foo2'
   In `r-deprecated-identifier', a toplevel procedure
   In expression
 
@@ -238,7 +238,7 @@ Warning: Type mismatch
 
   The suggested alternative is `foo'.
 
-Warning: Type mismatch
+Warning: Invalid assignment
   At toplevel
   In assignment
 
@@ -275,7 +275,7 @@ Warning: In `zero-values-for-conditional', a toplevel procedure
 Warning: In `multiple-values-for-conditional', a toplevel procedure
   expected a single result in conditional, but received 2 results
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Test is always true (test-scrutinizer-message-format.scm:XXX) 
   In `multiple-values-for-conditional', a toplevel procedure
   In conditional expression
 
@@ -288,7 +288,7 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 Warning: In `multiple-values-for-conditional', a toplevel procedure
   expected a single result in `let' binding of `gXXX', but received 2 results
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Wrong number of arguments (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-proc-call-argument-count-mismatch', a local procedure
@@ -302,7 +302,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     ('aXXX 'bXXX --> (pair 'aXXX 'bXXX))
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Invalid argument (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-proc-call-argument-type-mismatch', a local procedure
@@ -322,7 +322,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (list -> fixnum)
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Too many argument values (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-proc-call-argument-value-count', a local procedure
@@ -332,7 +332,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
   Argument #1 to procedure `list' returns 2 values but 1 is expected.
 
-  It is a call to `cpu-time' from module `chicken.time' which has this type
+  It is a call to `cpu-time' from module `chicken.time' which has type
 
     (-> fixnum fixnum)
 
@@ -340,7 +340,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (chicken.time#cpu-time)
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Not enough argument values (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-proc-call-argument-value-count', a local procedure
@@ -350,7 +350,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
   Argument #1 to procedure `vector' does not return any values.
 
-  It is a call to `values' from module `scheme' which has this type
+  It is a call to `values' from module `scheme' which has type
 
     (procedure (#!rest values) . *)
 
@@ -363,7 +363,7 @@ Warning: In `m#toplevel-foo', a toplevel procedure
   In `r-proc-call-argument-value-count', a local procedure
   expected a single result in `let' binding of `gXXX', but received zero results
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Branch values mismatch (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-cond-branch-value-count-mismatch', a local procedure
@@ -371,7 +371,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (if (the * 1) 1 (chicken.time#cpu-time))
 
-  The branches have different number of returned values.
+  The branches have different numbers of values.
 
   The true branch returns 1 value
 
@@ -381,7 +381,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (chicken.time#cpu-time)
 
-Warning: Type mismatch
+Warning: Invalid procedure
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-invalid-called-procedure-type', a local procedure
@@ -389,7 +389,7 @@ Warning: Type mismatch
 
     (1 2)
 
-  Procedure in a procedure call has invalid type
+  The procedure has invalid type
 
     fixnum
 
@@ -397,15 +397,15 @@ Warning: Type mismatch
 
     (* -> *)
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Predicate is always true (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-pred-call-always-true', a local procedure
-  In predicate call
+  In procedure call
 
     (scheme#list? '())
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -415,15 +415,15 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     null
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Predicate is always false (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-pred-call-always-false', a local procedure
-  In predicate call
+  In procedure call
 
     (scheme#symbol? 1)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -433,7 +433,7 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Test is always true (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-cond-test-always-true', a local procedure
@@ -445,7 +445,7 @@ Note: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     fixnum
 
-Note: Type mismatch
+Note: Test is always false
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-cond-test-always-false', a local procedure
@@ -473,7 +473,7 @@ Warning: Type mismatch
 
     symbol
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Not enough values (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-zero-values-for-the', a local procedure
@@ -485,7 +485,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     symbol
 
-Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Warning: Too many values (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-too-many-values-for-the', a local procedure
@@ -517,7 +517,7 @@ Warning: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     symbol
 
-Warning: Type mismatch
+Warning: Invalid assignment
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-toplevel-var-assignment-type-mismatch', a local procedure
@@ -535,7 +535,7 @@ Warning: Type mismatch
 
     boolean
 
-Warning: Type mismatch
+Warning: Deprecated identifier `deprecated-foo'
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-deprecated-identifier', a local procedure
@@ -545,7 +545,7 @@ Warning: Type mismatch
 
   Use of deprecated identifier `deprecated-foo' from module `m'.
 
-Warning: Type mismatch
+Warning: Deprecated identifier `deprecated-foo2'
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `r-deprecated-identifier', a local procedure
@@ -592,7 +592,7 @@ Warning: In `m#toplevel-foo', a toplevel procedure
   In `multiple-values-for-conditional', a local procedure
   expected a single result in conditional, but received 2 results
 
-Note: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Note: Test is always true (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `multiple-values-for-conditional', a local procedure
@@ -609,7 +609,7 @@ Warning: In `m#toplevel-foo', a toplevel procedure
   In `multiple-values-for-conditional', a local procedure
   expected a single result in `let' binding of `gXXX', but received 2 results
 
-Error: Type mismatch (test-scrutinizer-message-format.scm:XXX) 
+Error: No typecase match (test-scrutinizer-message-format.scm:XXX) 
   In `m#toplevel-foo', a toplevel procedure
   In `local-bar', a local procedure
   In `fail-compiler-typecase', a local procedure
@@ -617,7 +617,7 @@ Error: Type mismatch (test-scrutinizer-message-format.scm:XXX)
 
     (compiler-typecase gXXX (symbol 1) (list 2) (else (##core#undefined)))
 
-  Tested expression in `compiler-typecase' does not match any case.
+  Tested expression does not match any case.
 
   The expression has type
 
diff --git a/tests/scrutiny-2.expected b/tests/scrutiny-2.expected
index b6223a26..0c126bf8 100644
--- a/tests/scrutiny-2.expected
+++ b/tests/scrutiny-2.expected
@@ -1,13 +1,13 @@
 ;; numbers replaced with XXX by redact-gensyms.scm
 ;; prefixes: (tmp g scm:)
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#pair? p)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `pair?' from module `scheme' is a predicate for
 
@@ -17,13 +17,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     pair
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#pair? l)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `pair?' from module `scheme' is a predicate for
 
@@ -33,13 +33,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#pair? n)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `pair?' from module `scheme' is a predicate for
 
@@ -49,13 +49,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#pair? i)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `pair?' from module `scheme' is a predicate for
 
@@ -65,13 +65,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#pair? f)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `pair?' from module `scheme' is a predicate for
 
@@ -81,13 +81,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#list? l)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -97,13 +97,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#list? n)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -113,13 +113,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#list? i)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -129,13 +129,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#list? f)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `list?' from module `scheme' is a predicate for
 
@@ -145,13 +145,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#null? n)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `null?' from module `scheme' is a predicate for
 
@@ -161,13 +161,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#null? l)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `null?' from module `scheme' is a predicate for
 
@@ -177,13 +177,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     null
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#null? p)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `null?' from module `scheme' is a predicate for
 
@@ -193,13 +193,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     pair
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#null? i)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `null?' from module `scheme' is a predicate for
 
@@ -209,13 +209,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#null? f)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `null?' from module `scheme' is a predicate for
 
@@ -225,13 +225,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (chicken.base#fixnum? i)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `fixnum?' from module `chicken.base' is a predicate for
 
@@ -241,13 +241,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (chicken.base#fixnum? f)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `fixnum?' from module `chicken.base' is a predicate for
 
@@ -257,13 +257,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (chicken.base#flonum? f)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `flonum?' from module `chicken.base' is a predicate for
 
@@ -273,13 +273,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (chicken.base#flonum? i)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `flonum?' from module `chicken.base' is a predicate for
 
@@ -289,13 +289,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#number? i)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `number?' from module `scheme' is a predicate for
 
@@ -305,13 +305,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#number? f)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `number?' from module `scheme' is a predicate for
 
@@ -321,13 +321,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     float
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#number? u)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `number?' from module `scheme' is a predicate for
 
@@ -337,13 +337,13 @@ Note: Type mismatch (scrutiny-tests-2.scm:XXX)
 
     number
 
-Note: Type mismatch (scrutiny-tests-2.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests-2.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#number? n)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `number?' from module `scheme' is a predicate for
 
diff --git a/tests/scrutiny.expected b/tests/scrutiny.expected
index bd582964..8210da52 100644
--- a/tests/scrutiny.expected
+++ b/tests/scrutiny.expected
@@ -3,7 +3,7 @@
 
 Warning: (scrutiny-tests.scm:XXX) - assignment to imported value binding `car'
 
-Note: Type mismatch
+Note: Test is always true
   In `a', a toplevel procedure
   In `b', a local procedure
   In `c', a local procedure
@@ -15,7 +15,7 @@ Note: Type mismatch
 
     number
 
-Note: Type mismatch
+Note: Test is always true
   In `b', a toplevel procedure
   In conditional expression
 
@@ -25,13 +25,13 @@ Note: Type mismatch
 
     true
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Branch values mismatch (scrutiny-tests.scm:XXX) 
   In `foo', a toplevel procedure
   In conditional expression
 
     (if x (scheme#values 1 2) (scheme#values 1 2 (scheme#+ (scheme#+ ...))))
 
-  The branches have different number of returned values.
+  The branches have different numbers of values.
 
   The true branch returns 2 values
 
@@ -41,7 +41,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (scheme#values 1 2 (scheme#+ (scheme#+ (scheme#+ ...))))
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -59,7 +59,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Wrong number of arguments (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -71,7 +71,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (* -> boolean)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Too many argument values (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -79,7 +79,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
   Argument #1 to procedure `print' returns 2 values but 1 is expected.
 
-  It is a call to `values' from module `scheme' which has this type
+  It is a call to `values' from module `scheme' which has type
 
     (procedure (#!rest values) . *)
 
@@ -87,7 +87,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (scheme#values 1 2)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Not enough argument values (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -95,7 +95,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
   Argument #1 to procedure `print' does not return any values.
 
-  It is a call to `values' from module `scheme' which has this type
+  It is a call to `values' from module `scheme' which has type
 
     (procedure (#!rest values) . *)
 
@@ -103,13 +103,13 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (scheme#values)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid procedure (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
     (x)
 
-  Procedure in a procedure call has invalid type
+  The procedure has invalid type
 
     fixnum
 
@@ -117,7 +117,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (-> *)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -135,7 +135,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -153,7 +153,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch
+Warning: Invalid assignment
   At toplevel
   In assignment
 
@@ -172,13 +172,13 @@ Warning: Type mismatch
 Warning: At toplevel
   expected a single result in `let' binding of `gXXX', but received 2 results
 
-Warning: Type mismatch
+Warning: Invalid procedure
   At toplevel
   In procedure call
 
     (gXXX)
 
-  Procedure in a procedure call has invalid type
+  The procedure has invalid type
 
     fixnum
 
@@ -186,7 +186,7 @@ Warning: Type mismatch
 
     (-> *)
 
-Note: Type mismatch
+Note: Test is always true
   In `foo', a toplevel procedure
   In conditional expression
 
@@ -196,7 +196,7 @@ Note: Type mismatch
 
     (-> *)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo2', a toplevel procedure
   In procedure call
 
@@ -214,7 +214,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest string -> string)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -232,7 +232,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (string -> string)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo4', a toplevel procedure
   In procedure call
 
@@ -250,7 +250,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo5', a toplevel procedure
   In procedure call
 
@@ -268,7 +268,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo6', a toplevel procedure
   In procedure call
 
@@ -286,7 +286,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -304,7 +304,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In procedure call
 
@@ -322,7 +322,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (string -> symbol)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In procedure call
 
@@ -356,7 +356,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     pair
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In procedure call
 
@@ -374,7 +374,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest string -> string)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Too many values (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In expression
 
@@ -386,7 +386,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     *
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Not enough values (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In expression
 
@@ -396,7 +396,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     *
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo10', a toplevel procedure
   In procedure call
 
@@ -414,7 +414,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `foo#blabla', a toplevel procedure
   In procedure call
 
@@ -432,7 +432,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (#!rest number -> number)
 
-Warning: Type mismatch
+Warning: Deprecated identifier `deprecated-procedure'
   At toplevel
   In expression
 
@@ -440,7 +440,7 @@ Warning: Type mismatch
 
   Use of deprecated identifier `deprecated-procedure'.
 
-Warning: Type mismatch
+Warning: Deprecated identifier `another-deprecated-procedure'
   At toplevel
   In expression
 
@@ -450,7 +450,7 @@ Warning: Type mismatch
 
   The suggested alternative is `replacement-procedure'.
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -468,7 +468,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((#!rest 'a143 -> 'b144) (list-of 'a143) -> 'b144)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -486,13 +486,13 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((#!rest 'a143 -> 'b144) (list-of 'a143) -> 'b144)
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always true (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (chicken.base#fixnum? x)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `fixnum?' from module `chicken.base' is a predicate for
 
@@ -502,13 +502,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#symbol? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -518,13 +518,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     (or char string)
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -534,13 +534,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     (not (or char string))
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (char-or-string? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `char-or-string?' is a predicate for
 
@@ -550,13 +550,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#symbol? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -566,13 +566,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     (or char string)
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -582,13 +582,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     fixnum
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#symbol? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -598,13 +598,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     char
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -614,13 +614,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     symbol
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#symbol? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `symbol?' from module `scheme' is a predicate for
 
@@ -630,13 +630,13 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     (or char string)
 
-Note: Type mismatch (scrutiny-tests.scm:XXX) 
+Note: Predicate is always false (scrutiny-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? x)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -646,7 +646,7 @@ Note: Type mismatch (scrutiny-tests.scm:XXX)
 
     symbol
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -664,7 +664,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (pair -> *)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -682,7 +682,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (null -> *)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   At toplevel
   In procedure call
 
@@ -709,7 +709,7 @@ Warning: In `vector-ref-warn2', a toplevel procedure
 Warning: In `vector-ref-warn3', a toplevel procedure
   (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-ref', index 4 out of range for vector of length 3
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `vector-ref-standard-warn1', a toplevel procedure
   In procedure call
 
@@ -736,7 +736,7 @@ Warning: In `vector-set!-warn2', a toplevel procedure
 Warning: In `vector-set!-warn3', a toplevel procedure
   (scrutiny-tests.scm:XXX) in procedure call to `scheme#vector-set!', index 4 out of range for vector of length 3
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `vector-set!-standard-warn1', a toplevel procedure
   In procedure call
 
@@ -769,7 +769,7 @@ Warning: In `list-ref-warn4', a toplevel procedure
 Warning: In `list-ref-warn5', a toplevel procedure
   (scrutiny-tests.scm:XXX) in procedure call to `scheme#list-ref', index 4 out of range for proper list of length 3
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-standard-warn1', a toplevel procedure
   In procedure call
 
@@ -787,7 +787,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((list-of 'a366) fixnum -> 'a366)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-standard-warn2', a toplevel procedure
   In procedure call
 
@@ -805,7 +805,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((list-of 'a366) fixnum -> 'a366)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-standard-warn3', a toplevel procedure
   In procedure call
 
@@ -823,7 +823,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((list-of 'a366) fixnum -> 'a366)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-standard-warn4', a toplevel procedure
   In procedure call
 
@@ -841,7 +841,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     ((list-of 'a366) fixnum -> 'a366)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-type-warn1', a toplevel procedure
   In procedure call
 
@@ -859,7 +859,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-type-warn2', a toplevel procedure
   In procedure call
 
@@ -877,7 +877,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `list-ref-type-warn3', a toplevel procedure
   In procedure call
 
@@ -895,7 +895,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `append-result-type-warn1', a toplevel procedure
   In procedure call
 
@@ -913,7 +913,7 @@ Warning: Type mismatch (scrutiny-tests.scm:XXX)
 
     (number -> number)
 
-Warning: Type mismatch (scrutiny-tests.scm:XXX) 
+Warning: Invalid argument (scrutiny-tests.scm:XXX) 
   In `append-result-type-warn2', a toplevel procedure
   In procedure call
 
diff --git a/tests/specialization.expected b/tests/specialization.expected
index aa3d01b8..20a2e1d4 100644
--- a/tests/specialization.expected
+++ b/tests/specialization.expected
@@ -1,13 +1,13 @@
 ;; numbers replaced with XXX by redact-gensyms.scm
 ;; prefixes: (tmp g scm:)
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Predicate is always true (specialization-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? a)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -17,7 +17,7 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     string
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Test is always true (specialization-tests.scm:XXX) 
   At toplevel
   In conditional expression
 
@@ -27,13 +27,13 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     true
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Predicate is always false (specialization-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#string? a)
 
-  Predicate call will always return false.
+  The predicate will always return false.
 
   Procedure `string?' from module `scheme' is a predicate for
 
@@ -43,7 +43,7 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     symbol
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Test is always false (specialization-tests.scm:XXX) 
   At toplevel
   In conditional expression
 
@@ -51,13 +51,13 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
   Test condition is always false.
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Predicate is always true (specialization-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#input-port? p)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `input-port?' from module `scheme' is a predicate for
 
@@ -67,7 +67,7 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     input/output-port
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Test is always true (specialization-tests.scm:XXX) 
   At toplevel
   In conditional expression
 
@@ -77,13 +77,13 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     true
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Predicate is always true (specialization-tests.scm:XXX) 
   At toplevel
-  In predicate call
+  In procedure call
 
     (scheme#output-port? p)
 
-  Predicate call will always return true.
+  The predicate will always return true.
 
   Procedure `output-port?' from module `scheme' is a predicate for
 
@@ -93,7 +93,7 @@ Note: Type mismatch (specialization-tests.scm:XXX)
 
     input/output-port
 
-Note: Type mismatch (specialization-tests.scm:XXX) 
+Note: Test is always true (specialization-tests.scm:XXX) 
   At toplevel
   In conditional expression
 
Trap