+;; The byte compiler has special handling for these constructs:
+(let ((three 3) (five 5))
+ (Assert (= (+ three five 1) 9))
+ (Assert (= (+ 1 three five) 9))
+ (Assert (= (+ three five -1) 7))
+ (Assert (= (+ -1 three five) 7))
+ (Assert (= (+ three 1) 4))
+ (Assert (= (+ three -1) 2))
+ (Assert (= (+ -1 three) 2))
+ (Assert (= (+ -1 three) 2))
+ (Assert (= (- three five 1) -3))
+ (Assert (= (- 1 three five) -7))
+ (Assert (= (- three five -1) -1))
+ (Assert (= (- -1 three five) -9))
+ (Assert (= (- three 1) 2))
+ (Assert (= (- three 2 1) 0))
+ (Assert (= (- 2 three 1) -2))
+ (Assert (= (- three -1) 4))
+ (Assert (= (- three 0) 3))
+ (Assert (= (- three 0 five) -2))
+ (Assert (= (- 0 three 0 five) -8))
+ (Assert (= (- 0 three five) -8))
+ (Assert (= (* three 2) 6))
+ (Assert (= (* three -1 five) -15))
+ (Assert (= (* three 1 five) 15))
+ (Assert (= (* three 0 five) 0))
+ (Assert (= (* three 2 five) 30))
+ (Assert (= (/ three 1) 3))
+ (Assert (= (/ three -1) -3))
+ (Assert (= (/ (* five five) 2 2) 6))
+ (Assert (= (/ 64 five 2) 6)))
+
+