: INSPECT ( c-addr u -- ) "\"" TYPE TYPE-ESCAPED "\"" TYPE ; : REPORT ( c-addr1 u1 c-addr2 u2 xt -- ) -ROT 2>R >R 2DUP INSPECT " ( " TYPE EVALUATE DUP R@ EXECUTE " ) ⇔ " TYPE R> SWAP 2R> ROT >R ROT >R 2DUP INSPECT " ( " TYPE EVALUATE DUP R> EXECUTE " ) " TYPE R> = IF " ✓\n" ELSE " ✗\n" THEN TYPE ; : SREPORT ['] . REPORT ; : UREPORT ['] U. REPORT ; : TEST "0" "0 DUP -" SREPORT "4294967295" "0xFFFFFFFF" UREPORT "-1" "0 1-" SREPORT "-2147483648" "1 31 LSHIFT" SREPORT "0177" "127" SREPORT "0b1101101" "6 16 * 13 +" SREPORT "0B1011110" "5 16 * 14 +" SREPORT "0x5aa5a55a" "1520805210" SREPORT "0Xa55a5aa5" "1520805210 INVERT" SREPORT ; TEST