diff --git a/lib/interval/interval_test.go b/lib/interval/interval_test.go
index cbf1f77..4fa52a9 100644
--- a/lib/interval/interval_test.go
+++ b/lib/interval/interval_test.go
@@ -22,6 +22,7 @@
 	"strconv"
 	"strings"
 	"testing"
+	"unicode/utf8"
 )
 
 var fromNeg7ToPos7 = []*big.Int{
@@ -328,7 +329,7 @@
 		((x[1] == y[1]) && (x[1] != nil))
 }
 
-func testBruteForceAgrees(x IntRange, y IntRange, opKey string) error {
+func testBruteForceAgrees(x IntRange, y IntRange, opKey rune) error {
 	brute, bruteOK := bruteForce(x, y, opKey)
 	got, gotOK := intOperators[opKey](x, y)
 	if shareBigIntPointers(got, x) || shareBigIntPointers(got, y) {
@@ -351,7 +352,7 @@
 						y := IntRange{y0, y1}
 
 						if err := testBruteForceAgrees(x, y, opKey); err != nil {
-							tt.Fatalf("%v %s %v: %v", x, opKey, y, err)
+							tt.Fatalf("%v %c %v: %v", x, opKey, y, err)
 						}
 					}
 				}
@@ -375,7 +376,7 @@
 			x := IntRange{gen(rng), gen(rng)}
 			y := IntRange{gen(rng), gen(rng)}
 			if err := testBruteForceAgrees(x, y, opKey); err != nil {
-				tt.Fatalf("%v %s %v: %v", x, opKey, y, err)
+				tt.Fatalf("%v %c %v: %v", x, opKey, y, err)
 			}
 		}
 	}
@@ -399,7 +400,8 @@
 	i := 0
 	for ; i < len(s) && s[i] != ' '; i++ {
 	}
-	opKey, s := s[:i], s[i:]
+	opKey, _ := utf8.DecodeRuneInString(s[:i])
+	s = s[i:]
 
 	y, s, err := parseInterval(s)
 	if err != nil {
@@ -437,467 +439,469 @@
 	return nil
 }
 
-var intOperators = map[string]func(IntRange, IntRange) (IntRange, bool){
-	"∪":  func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Unite(y), true },
-	"∩":  func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Intersect(y), true },
-	"+":  func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Add(y), true },
-	"-":  func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Sub(y), true },
-	"*":  func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Mul(y), true },
-	"/":  IntRange.Quo,
-	"<<": IntRange.Lsh,
-	">>": IntRange.Rsh,
-	"&":  IntRange.And,
-	"|":  IntRange.Or,
+var intOperators = map[rune]func(IntRange, IntRange) (IntRange, bool){
+	'∪': func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Unite(y), true },
+	'∩': func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Intersect(y), true },
+	'+': func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Add(y), true },
+	'-': func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Sub(y), true },
+	'*': func(x IntRange, y IntRange) (z IntRange, ok bool) { return x.Mul(y), true },
+	'/': IntRange.Quo,
+	'«': IntRange.Lsh,
+	'»': IntRange.Rsh,
+	'&': IntRange.And,
+	'|': IntRange.Or,
 }
 
-var intOperatorsKeys []string
+var intOperatorsKeys []rune
 
 func init() {
 	for k := range intOperators {
 		intOperatorsKeys = append(intOperatorsKeys, k)
 	}
-	sort.Strings(intOperatorsKeys)
+	sort.Slice(intOperatorsKeys, func(i, j int) bool {
+		return intOperatorsKeys[i] < intOperatorsKeys[j]
+	})
 }
 
 func TestOpUnite(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   ∪  [  -5,   -5]  ==  [  -5,    3]",
-		"[   3,    3]   ∪  [   0,    0]  ==  [   0,    3]",
-		"[   0,    0]   ∪  [  -7,    7]  ==  [  -7,    7]",
-		"[   0,    2]   ∪  [   0,    5]  ==  [   0,    5]",
-		"[   3,    6]   ∪  [  10,   15]  ==  [   3,   15]",
-		"[   3,   +∞)   ∪  [  -4,   -2]  ==  [  -4,   +∞)",
-		"[   3,   +∞)   ∪  [  10,   15]  ==  [   3,   +∞)",
-		"[   3,   +∞)   ∪  (  -∞,   15]  ==  (  -∞,   +∞)",
-		"[   3,    6]   ∪  (  -∞,   15]  ==  (  -∞,   15]",
-		"[   3,    6]   ∪  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   ∪  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   ∪  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   ∪  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]   ∪  [...empty..]  ==  [   3,    6]",
-		"[...empty..]   ∪  [  10,   15]  ==  [  10,   15]",
-		"[...empty..]   ∪  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   ∪  [...empty..]  ==  (  -∞,   +∞)",
+		"[   3,    3]  ∪  [  -5,   -5]  ==  [  -5,    3]",
+		"[   3,    3]  ∪  [   0,    0]  ==  [   0,    3]",
+		"[   0,    0]  ∪  [  -7,    7]  ==  [  -7,    7]",
+		"[   0,    2]  ∪  [   0,    5]  ==  [   0,    5]",
+		"[   3,    6]  ∪  [  10,   15]  ==  [   3,   15]",
+		"[   3,   +∞)  ∪  [  -4,   -2]  ==  [  -4,   +∞)",
+		"[   3,   +∞)  ∪  [  10,   15]  ==  [   3,   +∞)",
+		"[   3,   +∞)  ∪  (  -∞,   15]  ==  (  -∞,   +∞)",
+		"[   3,    6]  ∪  (  -∞,   15]  ==  (  -∞,   15]",
+		"[   3,    6]  ∪  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  ∪  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  ∪  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  ∪  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  ∪  [...empty..]  ==  [   3,    6]",
+		"[...empty..]  ∪  [  10,   15]  ==  [  10,   15]",
+		"[...empty..]  ∪  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  ∪  [...empty..]  ==  (  -∞,   +∞)",
 	)
 }
 
 func TestOpIntersect(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   ∩  [  -5,   -5]  ==  [...empty..]",
-		"[   3,    3]   ∩  [   0,    0]  ==  [...empty..]",
-		"[   0,    0]   ∩  [  -7,    7]  ==  [   0,    0]",
-		"[   0,    2]   ∩  [   0,    5]  ==  [   0,    2]",
-		"[   3,    6]   ∩  [  10,   15]  ==  [...empty..]",
-		"[   3,   +∞)   ∩  [  -4,   -2]  ==  [...empty..]",
-		"[   3,   +∞)   ∩  [  10,   15]  ==  [  10,   15]",
-		"[   3,   +∞)   ∩  (  -∞,   15]  ==  [   3,   15]",
-		"[   3,    6]   ∩  (  -∞,   15]  ==  [   3,    6]",
-		"[   3,    6]   ∩  (  -∞,   +∞)  ==  [   3,    6]",
-		"(  -∞,   +∞)   ∩  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   ∩  [   1,    2]  ==  [   1,    2]",
-		"(  -∞,   +∞)   ∩  [   0,    0]  ==  [   0,    0]",
-		"[   3,    6]   ∩  [...empty..]  ==  [...empty..]",
-		"[...empty..]   ∩  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   ∩  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   ∩  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  ∩  [  -5,   -5]  ==  [...empty..]",
+		"[   3,    3]  ∩  [   0,    0]  ==  [...empty..]",
+		"[   0,    0]  ∩  [  -7,    7]  ==  [   0,    0]",
+		"[   0,    2]  ∩  [   0,    5]  ==  [   0,    2]",
+		"[   3,    6]  ∩  [  10,   15]  ==  [...empty..]",
+		"[   3,   +∞)  ∩  [  -4,   -2]  ==  [...empty..]",
+		"[   3,   +∞)  ∩  [  10,   15]  ==  [  10,   15]",
+		"[   3,   +∞)  ∩  (  -∞,   15]  ==  [   3,   15]",
+		"[   3,    6]  ∩  (  -∞,   15]  ==  [   3,    6]",
+		"[   3,    6]  ∩  (  -∞,   +∞)  ==  [   3,    6]",
+		"(  -∞,   +∞)  ∩  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  ∩  [   1,    2]  ==  [   1,    2]",
+		"(  -∞,   +∞)  ∩  [   0,    0]  ==  [   0,    0]",
+		"[   3,    6]  ∩  [...empty..]  ==  [...empty..]",
+		"[...empty..]  ∩  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  ∩  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  ∩  [...empty..]  ==  [...empty..]",
 	)
 }
 
 func TestOpAdd(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   +  [  -5,   -5]  ==  [  -2,   -2]",
-		"[   3,    3]   +  [   0,    0]  ==  [   3,    3]",
-		"[   0,    0]   +  [  -7,    7]  ==  [  -7,    7]",
-		"[   0,    2]   +  [   0,    5]  ==  [   0,    7]",
-		"[   3,    6]   +  [  10,   15]  ==  [  13,   21]",
-		"[   3,   +∞)   +  [  -4,   -2]  ==  [  -1,   +∞)",
-		"[   3,   +∞)   +  [  10,   15]  ==  [  13,   +∞)",
-		"[   3,   +∞)   +  (  -∞,   15]  ==  (  -∞,   +∞)",
-		"[   3,    6]   +  (  -∞,   15]  ==  (  -∞,   21]",
-		"[   3,    6]   +  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   +  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   +  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   +  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]   +  [...empty..]  ==  [...empty..]",
-		"[...empty..]   +  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   +  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   +  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  +  [  -5,   -5]  ==  [  -2,   -2]",
+		"[   3,    3]  +  [   0,    0]  ==  [   3,    3]",
+		"[   0,    0]  +  [  -7,    7]  ==  [  -7,    7]",
+		"[   0,    2]  +  [   0,    5]  ==  [   0,    7]",
+		"[   3,    6]  +  [  10,   15]  ==  [  13,   21]",
+		"[   3,   +∞)  +  [  -4,   -2]  ==  [  -1,   +∞)",
+		"[   3,   +∞)  +  [  10,   15]  ==  [  13,   +∞)",
+		"[   3,   +∞)  +  (  -∞,   15]  ==  (  -∞,   +∞)",
+		"[   3,    6]  +  (  -∞,   15]  ==  (  -∞,   21]",
+		"[   3,    6]  +  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  +  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  +  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  +  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  +  [...empty..]  ==  [...empty..]",
+		"[...empty..]  +  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  +  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  +  [...empty..]  ==  [...empty..]",
 	)
 }
 
 func TestOpSub(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   -  [  -5,   -5]  ==  [   8,    8]",
-		"[   3,    3]   -  [   0,    0]  ==  [   3,    3]",
-		"[   0,    0]   -  [  -7,    7]  ==  [  -7,    7]",
-		"[   0,    2]   -  [   0,    5]  ==  [  -5,    2]",
-		"[   3,    6]   -  [  10,   15]  ==  [ -12,   -4]",
-		"[   3,   +∞)   -  [  -4,   -2]  ==  [   5,   +∞)",
-		"[   3,   +∞)   -  [  10,   15]  ==  [ -12,   +∞)",
-		"[   3,   +∞)   -  (  -∞,   15]  ==  (  -∞,   +∞)",
-		"[   3,    6]   -  (  -∞,   15]  ==  [ -12,   +∞)",
-		"[   3,    6]   -  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   -  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   -  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   -  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]   -  [...empty..]  ==  [...empty..]",
-		"[...empty..]   -  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   -  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   -  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  -  [  -5,   -5]  ==  [   8,    8]",
+		"[   3,    3]  -  [   0,    0]  ==  [   3,    3]",
+		"[   0,    0]  -  [  -7,    7]  ==  [  -7,    7]",
+		"[   0,    2]  -  [   0,    5]  ==  [  -5,    2]",
+		"[   3,    6]  -  [  10,   15]  ==  [ -12,   -4]",
+		"[   3,   +∞)  -  [  -4,   -2]  ==  [   5,   +∞)",
+		"[   3,   +∞)  -  [  10,   15]  ==  [ -12,   +∞)",
+		"[   3,   +∞)  -  (  -∞,   15]  ==  (  -∞,   +∞)",
+		"[   3,    6]  -  (  -∞,   15]  ==  [ -12,   +∞)",
+		"[   3,    6]  -  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  -  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  -  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  -  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  -  [...empty..]  ==  [...empty..]",
+		"[...empty..]  -  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  -  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  -  [...empty..]  ==  [...empty..]",
 	)
 }
 
 func TestOpMul(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   *  [  -5,   -5]  ==  [ -15,  -15]",
-		"[   3,    3]   *  [   0,    0]  ==  [   0,    0]",
-		"[   0,    0]   *  [  -7,    7]  ==  [   0,    0]",
-		"[   0,    2]   *  [   0,    5]  ==  [   0,   10]",
-		"[   3,    6]   *  [  10,   15]  ==  [  30,   90]",
-		"[   3,   +∞)   *  [  -4,   -2]  ==  (  -∞,   -6]",
-		"[   3,   +∞)   *  [  10,   15]  ==  [  30,   +∞)",
-		"[   3,   +∞)   *  (  -∞,   15]  ==  (  -∞,   +∞)",
-		"[   3,    6]   *  (  -∞,   15]  ==  (  -∞,   90]",
-		"[   3,    6]   *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   *  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   *  [   0,    0]  ==  [   0,    0]",
-		"[   3,    6]   *  [...empty..]  ==  [...empty..]",
-		"[...empty..]   *  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   *  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   *  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  *  [  -5,   -5]  ==  [ -15,  -15]",
+		"[   3,    3]  *  [   0,    0]  ==  [   0,    0]",
+		"[   0,    0]  *  [  -7,    7]  ==  [   0,    0]",
+		"[   0,    2]  *  [   0,    5]  ==  [   0,   10]",
+		"[   3,    6]  *  [  10,   15]  ==  [  30,   90]",
+		"[   3,   +∞)  *  [  -4,   -2]  ==  (  -∞,   -6]",
+		"[   3,   +∞)  *  [  10,   15]  ==  [  30,   +∞)",
+		"[   3,   +∞)  *  (  -∞,   15]  ==  (  -∞,   +∞)",
+		"[   3,    6]  *  (  -∞,   15]  ==  (  -∞,   90]",
+		"[   3,    6]  *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  *  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  *  [   0,    0]  ==  [   0,    0]",
+		"[   3,    6]  *  [...empty..]  ==  [...empty..]",
+		"[...empty..]  *  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  *  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  *  [...empty..]  ==  [...empty..]",
 
-		"[  -3,   -1]   *  [ -11,  -10]  ==  [  10,   33]",
-		"[  -3,    0]   *  [ -11,  -10]  ==  [   0,   33]",
-		"[  -3,    1]   *  [ -11,  -10]  ==  [ -11,   33]",
-		"[  -3,    4]   *  [ -11,  -10]  ==  [ -44,   33]",
-		"[  -1,    4]   *  [ -11,  -10]  ==  [ -44,   11]",
-		"[   0,    4]   *  [ -11,  -10]  ==  [ -44,    0]",
-		"[   1,    4]   *  [ -11,  -10]  ==  [ -44,  -10]",
+		"[  -3,   -1]  *  [ -11,  -10]  ==  [  10,   33]",
+		"[  -3,    0]  *  [ -11,  -10]  ==  [   0,   33]",
+		"[  -3,    1]  *  [ -11,  -10]  ==  [ -11,   33]",
+		"[  -3,    4]  *  [ -11,  -10]  ==  [ -44,   33]",
+		"[  -1,    4]  *  [ -11,  -10]  ==  [ -44,   11]",
+		"[   0,    4]  *  [ -11,  -10]  ==  [ -44,    0]",
+		"[   1,    4]  *  [ -11,  -10]  ==  [ -44,  -10]",
 
-		"[  -3,   -1]   *  [  -6,    2]  ==  [  -6,   18]",
-		"[  -3,    0]   *  [  -6,    2]  ==  [  -6,   18]",
-		"[  -3,    1]   *  [  -6,    2]  ==  [  -6,   18]",
-		"[  -3,    4]   *  [  -6,    2]  ==  [ -24,   18]",
-		"[  -1,    4]   *  [  -6,    2]  ==  [ -24,    8]",
-		"[   0,    4]   *  [  -6,    2]  ==  [ -24,    8]",
-		"[   1,    4]   *  [  -6,    2]  ==  [ -24,    8]",
+		"[  -3,   -1]  *  [  -6,    2]  ==  [  -6,   18]",
+		"[  -3,    0]  *  [  -6,    2]  ==  [  -6,   18]",
+		"[  -3,    1]  *  [  -6,    2]  ==  [  -6,   18]",
+		"[  -3,    4]  *  [  -6,    2]  ==  [ -24,   18]",
+		"[  -1,    4]  *  [  -6,    2]  ==  [ -24,    8]",
+		"[   0,    4]  *  [  -6,    2]  ==  [ -24,    8]",
+		"[   1,    4]  *  [  -6,    2]  ==  [ -24,    8]",
 
-		"[  -3,   -1]   *  [   0,    3]  ==  [  -9,    0]",
-		"[  -3,    0]   *  [   0,    3]  ==  [  -9,    0]",
-		"[  -3,    1]   *  [   0,    3]  ==  [  -9,    3]",
-		"[  -3,    4]   *  [   0,    3]  ==  [  -9,   12]",
-		"[  -1,    4]   *  [   0,    3]  ==  [  -3,   12]",
-		"[   0,    4]   *  [   0,    3]  ==  [   0,   12]",
-		"[   1,    4]   *  [   0,    3]  ==  [   0,   12]",
+		"[  -3,   -1]  *  [   0,    3]  ==  [  -9,    0]",
+		"[  -3,    0]  *  [   0,    3]  ==  [  -9,    0]",
+		"[  -3,    1]  *  [   0,    3]  ==  [  -9,    3]",
+		"[  -3,    4]  *  [   0,    3]  ==  [  -9,   12]",
+		"[  -1,    4]  *  [   0,    3]  ==  [  -3,   12]",
+		"[   0,    4]  *  [   0,    3]  ==  [   0,   12]",
+		"[   1,    4]  *  [   0,    3]  ==  [   0,   12]",
 
-		"[  -3,   -1]   *  [   2,    3]  ==  [  -9,   -2]",
-		"[  -3,    0]   *  [   2,    3]  ==  [  -9,    0]",
-		"[  -3,    1]   *  [   2,    3]  ==  [  -9,    3]",
-		"[  -3,    4]   *  [   2,    3]  ==  [  -9,   12]",
-		"[  -1,    4]   *  [   2,    3]  ==  [  -3,   12]",
-		"[   0,    4]   *  [   2,    3]  ==  [   0,   12]",
-		"[   1,    4]   *  [   2,    3]  ==  [   2,   12]",
+		"[  -3,   -1]  *  [   2,    3]  ==  [  -9,   -2]",
+		"[  -3,    0]  *  [   2,    3]  ==  [  -9,    0]",
+		"[  -3,    1]  *  [   2,    3]  ==  [  -9,    3]",
+		"[  -3,    4]  *  [   2,    3]  ==  [  -9,   12]",
+		"[  -1,    4]  *  [   2,    3]  ==  [  -3,   12]",
+		"[   0,    4]  *  [   2,    3]  ==  [   0,   12]",
+		"[   1,    4]  *  [   2,    3]  ==  [   2,   12]",
 
-		"[  -9,   +∞)   *  [   2,   +∞)  ==  (  -∞,   +∞)",
-		"[  -1,   +∞)   *  [   2,   +∞)  ==  (  -∞,   +∞)",
-		"[   0,   +∞)   *  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   1,   +∞)   *  [   2,   +∞)  ==  [   2,   +∞)",
-		"[   7,   +∞)   *  [   2,   +∞)  ==  [  14,   +∞)",
-		"[  -1,    1]   *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"[   0,    0]   *  (  -∞,   +∞)  ==  [   0,    0]",
-		"[   1,    1]   *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[  -9,   +∞)  *  [   2,   +∞)  ==  (  -∞,   +∞)",
+		"[  -1,   +∞)  *  [   2,   +∞)  ==  (  -∞,   +∞)",
+		"[   0,   +∞)  *  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   1,   +∞)  *  [   2,   +∞)  ==  [   2,   +∞)",
+		"[   7,   +∞)  *  [   2,   +∞)  ==  [  14,   +∞)",
+		"[  -1,    1]  *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[   0,    0]  *  (  -∞,   +∞)  ==  [   0,    0]",
+		"[   1,    1]  *  (  -∞,   +∞)  ==  (  -∞,   +∞)",
 	)
 }
 
 func TestOpQuo(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   /  [  -5,   -5]  ==  [   0,    0]",
-		"[   3,    3]   /  [   0,    0]  ==  invalid",
-		"[   0,    0]   /  [  -7,    7]  ==  invalid",
-		"[   0,    2]   /  [   0,    5]  ==  invalid",
-		"[   3,    6]   /  [  10,   15]  ==  [   0,    0]",
-		"[   3,   +∞)   /  [  -4,   -2]  ==  (  -∞,    0]",
-		"[   3,   +∞)   /  [  10,   15]  ==  [   0,   +∞)",
-		"[   3,   +∞)   /  (  -∞,   15]  ==  invalid",
-		"[   3,    6]   /  (  -∞,   15]  ==  invalid",
-		"[   3,    6]   /  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)   /  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)   /  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   /  [   0,    0]  ==  invalid",
-		"[   3,    6]   /  [...empty..]  ==  [...empty..]",
-		"[...empty..]   /  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   /  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   /  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  /  [  -5,   -5]  ==  [   0,    0]",
+		"[   3,    3]  /  [   0,    0]  ==  invalid",
+		"[   0,    0]  /  [  -7,    7]  ==  invalid",
+		"[   0,    2]  /  [   0,    5]  ==  invalid",
+		"[   3,    6]  /  [  10,   15]  ==  [   0,    0]",
+		"[   3,   +∞)  /  [  -4,   -2]  ==  (  -∞,    0]",
+		"[   3,   +∞)  /  [  10,   15]  ==  [   0,   +∞)",
+		"[   3,   +∞)  /  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  /  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  /  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  /  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  /  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  /  [   0,    0]  ==  invalid",
+		"[   3,    6]  /  [...empty..]  ==  [...empty..]",
+		"[...empty..]  /  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  /  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  /  [...empty..]  ==  [...empty..]",
 
-		"[   1,    4]   /  [ -11,  -10]  ==  [   0,    0]",
+		"[   1,    4]  /  [ -11,  -10]  ==  [   0,    0]",
 
-		"[   1,    4]   /  [  -6,    2]  ==  invalid",
+		"[   1,    4]  /  [  -6,    2]  ==  invalid",
 
-		"[  -3,   -1]   /  [   1,    3]  ==  [  -3,    0]",
-		"[  -3,    0]   /  [   1,    3]  ==  [  -3,    0]",
-		"[  -3,    1]   /  [   1,    3]  ==  [  -3,    1]",
-		"[  -3,    4]   /  [   1,    3]  ==  [  -3,    4]",
-		"[  -1,    4]   /  [   1,    3]  ==  [  -1,    4]",
-		"[   0,    4]   /  [   1,    3]  ==  [   0,    4]",
-		"[   1,    4]   /  [   1,    3]  ==  [   0,    4]",
+		"[  -3,   -1]  /  [   1,    3]  ==  [  -3,    0]",
+		"[  -3,    0]  /  [   1,    3]  ==  [  -3,    0]",
+		"[  -3,    1]  /  [   1,    3]  ==  [  -3,    1]",
+		"[  -3,    4]  /  [   1,    3]  ==  [  -3,    4]",
+		"[  -1,    4]  /  [   1,    3]  ==  [  -1,    4]",
+		"[   0,    4]  /  [   1,    3]  ==  [   0,    4]",
+		"[   1,    4]  /  [   1,    3]  ==  [   0,    4]",
 
-		"[  -3,   -1]   /  [   2,    3]  ==  [  -1,    0]",
-		"[  -3,    0]   /  [   2,    3]  ==  [  -1,    0]",
-		"[  -3,    1]   /  [   2,    3]  ==  [  -1,    0]",
-		"[  -3,    4]   /  [   2,    3]  ==  [  -1,    2]",
-		"[  -1,    4]   /  [   2,    3]  ==  [   0,    2]",
-		"[   0,    4]   /  [   2,    3]  ==  [   0,    2]",
-		"[   1,    4]   /  [   2,    3]  ==  [   0,    2]",
+		"[  -3,   -1]  /  [   2,    3]  ==  [  -1,    0]",
+		"[  -3,    0]  /  [   2,    3]  ==  [  -1,    0]",
+		"[  -3,    1]  /  [   2,    3]  ==  [  -1,    0]",
+		"[  -3,    4]  /  [   2,    3]  ==  [  -1,    2]",
+		"[  -1,    4]  /  [   2,    3]  ==  [   0,    2]",
+		"[   0,    4]  /  [   2,    3]  ==  [   0,    2]",
+		"[   1,    4]  /  [   2,    3]  ==  [   0,    2]",
 
-		"[  -9,   +∞)   /  [   2,   +∞)  ==  [  -4,   +∞)",
-		"[  -1,   +∞)   /  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   0,   +∞)   /  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   1,   +∞)   /  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   7,   +∞)   /  [   2,   +∞)  ==  [   0,   +∞)",
-		"[  -1,    1]   /  (  -∞,   +∞)  ==  invalid",
-		"[   0,    0]   /  (  -∞,   +∞)  ==  invalid",
-		"[   1,    1]   /  (  -∞,   +∞)  ==  invalid",
+		"[  -9,   +∞)  /  [   2,   +∞)  ==  [  -4,   +∞)",
+		"[  -1,   +∞)  /  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   0,   +∞)  /  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   1,   +∞)  /  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   7,   +∞)  /  [   2,   +∞)  ==  [   0,   +∞)",
+		"[  -1,    1]  /  (  -∞,   +∞)  ==  invalid",
+		"[   0,    0]  /  (  -∞,   +∞)  ==  invalid",
+		"[   1,    1]  /  (  -∞,   +∞)  ==  invalid",
 	)
 }
 
 func TestOpLsh(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]  <<  [  -5,   -5]  ==  invalid",
-		"[   3,    3]  <<  [   0,    0]  ==  [   3,    3]",
-		"[   0,    0]  <<  [  -7,    7]  ==  invalid",
-		"[   0,    2]  <<  [   0,    5]  ==  [   0,   64]",
-		"[   3,    6]  <<  [  10,   15]  ==  [3072, 196608]",
-		"[   3,   +∞)  <<  [  -4,   -2]  ==  invalid",
-		"[   3,   +∞)  <<  [  10,   15]  ==  [3072,   +∞)",
-		"[   3,   +∞)  <<  (  -∞,   15]  ==  invalid",
-		"[   3,    6]  <<  (  -∞,   15]  ==  invalid",
-		"[   3,    6]  <<  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)  <<  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)  <<  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)  <<  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]  <<  [...empty..]  ==  [...empty..]",
-		"[...empty..]  <<  [  10,   15]  ==  [...empty..]",
-		"[...empty..]  <<  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)  <<  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  «  [  -5,   -5]  ==  invalid",
+		"[   3,    3]  «  [   0,    0]  ==  [   3,    3]",
+		"[   0,    0]  «  [  -7,    7]  ==  invalid",
+		"[   0,    2]  «  [   0,    5]  ==  [   0,   64]",
+		"[   3,    6]  «  [  10,   15]  ==  [3072, 196608]",
+		"[   3,   +∞)  «  [  -4,   -2]  ==  invalid",
+		"[   3,   +∞)  «  [  10,   15]  ==  [3072,   +∞)",
+		"[   3,   +∞)  «  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  «  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  «  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  «  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  «  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  «  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  «  [...empty..]  ==  [...empty..]",
+		"[...empty..]  «  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  «  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  «  [...empty..]  ==  [...empty..]",
 
-		"[   1,    4]  <<  [ -11,  -10]  ==  invalid",
+		"[   1,    4]  «  [ -11,  -10]  ==  invalid",
 
-		"[   1,    4]  <<  [  -6,    2]  ==  invalid",
+		"[   1,    4]  «  [  -6,    2]  ==  invalid",
 
-		"[  -3,   -1]  <<  [   0,    3]  ==  [ -24,   -1]",
-		"[  -3,    0]  <<  [   0,    3]  ==  [ -24,    0]",
-		"[  -3,    1]  <<  [   0,    3]  ==  [ -24,    8]",
-		"[  -3,    4]  <<  [   0,    3]  ==  [ -24,   32]",
-		"[  -1,    4]  <<  [   0,    3]  ==  [  -8,   32]",
-		"[   0,    4]  <<  [   0,    3]  ==  [   0,   32]",
-		"[   1,    4]  <<  [   0,    3]  ==  [   1,   32]",
+		"[  -3,   -1]  «  [   0,    3]  ==  [ -24,   -1]",
+		"[  -3,    0]  «  [   0,    3]  ==  [ -24,    0]",
+		"[  -3,    1]  «  [   0,    3]  ==  [ -24,    8]",
+		"[  -3,    4]  «  [   0,    3]  ==  [ -24,   32]",
+		"[  -1,    4]  «  [   0,    3]  ==  [  -8,   32]",
+		"[   0,    4]  «  [   0,    3]  ==  [   0,   32]",
+		"[   1,    4]  «  [   0,    3]  ==  [   1,   32]",
 
-		"[  -3,   -1]  <<  [   2,    3]  ==  [ -24,   -4]",
-		"[  -3,    0]  <<  [   2,    3]  ==  [ -24,    0]",
-		"[  -3,    1]  <<  [   2,    3]  ==  [ -24,    8]",
-		"[  -3,    4]  <<  [   2,    3]  ==  [ -24,   32]",
-		"[  -1,    4]  <<  [   2,    3]  ==  [  -8,   32]",
-		"[   0,    4]  <<  [   2,    3]  ==  [   0,   32]",
-		"[   1,    4]  <<  [   2,    3]  ==  [   4,   32]",
+		"[  -3,   -1]  «  [   2,    3]  ==  [ -24,   -4]",
+		"[  -3,    0]  «  [   2,    3]  ==  [ -24,    0]",
+		"[  -3,    1]  «  [   2,    3]  ==  [ -24,    8]",
+		"[  -3,    4]  «  [   2,    3]  ==  [ -24,   32]",
+		"[  -1,    4]  «  [   2,    3]  ==  [  -8,   32]",
+		"[   0,    4]  «  [   2,    3]  ==  [   0,   32]",
+		"[   1,    4]  «  [   2,    3]  ==  [   4,   32]",
 
-		"[  -9,   +∞)  <<  [   2,   +∞)  ==  (  -∞,   +∞)",
-		"[  -1,   +∞)  <<  [   2,   +∞)  ==  (  -∞,   +∞)",
-		"[   0,   +∞)  <<  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   1,   +∞)  <<  [   2,   +∞)  ==  [   4,   +∞)",
-		"[   7,   +∞)  <<  [   2,   +∞)  ==  [  28,   +∞)",
-		"[  -1,    1]  <<  (  -∞,   +∞)  ==  invalid",
-		"[   0,    0]  <<  (  -∞,   +∞)  ==  invalid",
-		"[   1,    1]  <<  (  -∞,   +∞)  ==  invalid",
+		"[  -9,   +∞)  «  [   2,   +∞)  ==  (  -∞,   +∞)",
+		"[  -1,   +∞)  «  [   2,   +∞)  ==  (  -∞,   +∞)",
+		"[   0,   +∞)  «  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   1,   +∞)  «  [   2,   +∞)  ==  [   4,   +∞)",
+		"[   7,   +∞)  «  [   2,   +∞)  ==  [  28,   +∞)",
+		"[  -1,    1]  «  (  -∞,   +∞)  ==  invalid",
+		"[   0,    0]  «  (  -∞,   +∞)  ==  invalid",
+		"[   1,    1]  «  (  -∞,   +∞)  ==  invalid",
 	)
 }
 
 func TestOpRsh(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]  >>  [  -5,   -5]  ==  invalid",
-		"[   3,    3]  >>  [   0,    0]  ==  [   3,    3]",
-		"[   0,    0]  >>  [  -7,    7]  ==  invalid",
-		"[   0,    2]  >>  [   0,    5]  ==  [   0,    2]",
-		"[   3,    6]  >>  [  10,   15]  ==  [   0,    0]",
-		"[   3,   +∞)  >>  [  -4,   -2]  ==  invalid",
-		"[   3,   +∞)  >>  [  10,   15]  ==  [   0,   +∞)",
-		"[   3,   +∞)  >>  (  -∞,   15]  ==  invalid",
-		"[   3,    6]  >>  (  -∞,   15]  ==  invalid",
-		"[   3,    6]  >>  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)  >>  (  -∞,   +∞)  ==  invalid",
-		"(  -∞,   +∞)  >>  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)  >>  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]  >>  [...empty..]  ==  [...empty..]",
-		"[...empty..]  >>  [  10,   15]  ==  [...empty..]",
-		"[...empty..]  >>  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)  >>  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  »  [  -5,   -5]  ==  invalid",
+		"[   3,    3]  »  [   0,    0]  ==  [   3,    3]",
+		"[   0,    0]  »  [  -7,    7]  ==  invalid",
+		"[   0,    2]  »  [   0,    5]  ==  [   0,    2]",
+		"[   3,    6]  »  [  10,   15]  ==  [   0,    0]",
+		"[   3,   +∞)  »  [  -4,   -2]  ==  invalid",
+		"[   3,   +∞)  »  [  10,   15]  ==  [   0,   +∞)",
+		"[   3,   +∞)  »  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  »  (  -∞,   15]  ==  invalid",
+		"[   3,    6]  »  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  »  (  -∞,   +∞)  ==  invalid",
+		"(  -∞,   +∞)  »  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  »  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  »  [...empty..]  ==  [...empty..]",
+		"[...empty..]  »  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  »  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  »  [...empty..]  ==  [...empty..]",
 
-		"[   1,    4]  >>  [ -11,  -10]  ==  invalid",
+		"[   1,    4]  »  [ -11,  -10]  ==  invalid",
 
-		"[   1,    4]  >>  [  -6,    2]  ==  invalid",
+		"[   1,    4]  »  [  -6,    2]  ==  invalid",
 
-		"[  -3,   -1]  >>  [   0,    3]  ==  [  -3,   -1]",
-		"[  -3,    0]  >>  [   0,    3]  ==  [  -3,    0]",
-		"[  -3,    1]  >>  [   0,    3]  ==  [  -3,    1]",
-		"[  -3,    4]  >>  [   0,    3]  ==  [  -3,    4]",
-		"[  -1,    4]  >>  [   0,    3]  ==  [  -1,    4]",
-		"[   0,    4]  >>  [   0,    3]  ==  [   0,    4]",
-		"[   1,    4]  >>  [   0,    3]  ==  [   0,    4]",
+		"[  -3,   -1]  »  [   0,    3]  ==  [  -3,   -1]",
+		"[  -3,    0]  »  [   0,    3]  ==  [  -3,    0]",
+		"[  -3,    1]  »  [   0,    3]  ==  [  -3,    1]",
+		"[  -3,    4]  »  [   0,    3]  ==  [  -3,    4]",
+		"[  -1,    4]  »  [   0,    3]  ==  [  -1,    4]",
+		"[   0,    4]  »  [   0,    3]  ==  [   0,    4]",
+		"[   1,    4]  »  [   0,    3]  ==  [   0,    4]",
 
-		"[  -3,   -1]  >>  [   1,    3]  ==  [  -2,   -1]",
-		"[  -3,    0]  >>  [   1,    3]  ==  [  -2,    0]",
-		"[  -3,    1]  >>  [   1,    3]  ==  [  -2,    0]",
-		"[  -3,    4]  >>  [   1,    3]  ==  [  -2,    2]",
-		"[  -1,    4]  >>  [   1,    3]  ==  [  -1,    2]",
-		"[   0,    4]  >>  [   1,    3]  ==  [   0,    2]",
-		"[   1,    4]  >>  [   1,    3]  ==  [   0,    2]",
+		"[  -3,   -1]  »  [   1,    3]  ==  [  -2,   -1]",
+		"[  -3,    0]  »  [   1,    3]  ==  [  -2,    0]",
+		"[  -3,    1]  »  [   1,    3]  ==  [  -2,    0]",
+		"[  -3,    4]  »  [   1,    3]  ==  [  -2,    2]",
+		"[  -1,    4]  »  [   1,    3]  ==  [  -1,    2]",
+		"[   0,    4]  »  [   1,    3]  ==  [   0,    2]",
+		"[   1,    4]  »  [   1,    3]  ==  [   0,    2]",
 
-		"[  -9,   +∞)  >>  [   2,   +∞)  ==  [  -3,   +∞)",
-		"[  -1,   +∞)  >>  [   2,   +∞)  ==  [  -1,   +∞)",
-		"[   0,   +∞)  >>  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   1,   +∞)  >>  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   7,   +∞)  >>  [   2,   +∞)  ==  [   0,   +∞)",
-		"[  -1,    1]  >>  (  -∞,   +∞)  ==  invalid",
-		"[   0,    0]  >>  (  -∞,   +∞)  ==  invalid",
-		"[   1,    1]  >>  (  -∞,   +∞)  ==  invalid",
+		"[  -9,   +∞)  »  [   2,   +∞)  ==  [  -3,   +∞)",
+		"[  -1,   +∞)  »  [   2,   +∞)  ==  [  -1,   +∞)",
+		"[   0,   +∞)  »  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   1,   +∞)  »  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   7,   +∞)  »  [   2,   +∞)  ==  [   0,   +∞)",
+		"[  -1,    1]  »  (  -∞,   +∞)  ==  invalid",
+		"[   0,    0]  »  (  -∞,   +∞)  ==  invalid",
+		"[   1,    1]  »  (  -∞,   +∞)  ==  invalid",
 	)
 }
 
 func TestOpAnd(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   &  [  -5,   -5]  ==  [   3,    3]",
-		"[   3,    3]   &  [   0,    0]  ==  [   0,    0]",
-		"[   0,    0]   &  [  -7,    7]  ==  [   0,    0]",
-		"[   0,    2]   &  [   0,    5]  ==  [   0,    2]",
-		"[   3,    6]   &  [  10,   15]  ==  [   0,    6]",
-		"[   3,   +∞)   &  [  -4,   -2]  ==  [   0,   +∞)",
-		"[   3,   +∞)   &  [  10,   15]  ==  [   0,   15]",
-		"[   3,   +∞)   &  (  -∞,   15]  ==  [   0,   +∞)",
-		"[   3,    6]   &  (  -∞,   15]  ==  [   0,    6]",
-		"[   3,    6]   &  (  -∞,   +∞)  ==  [   0,    6]",
-		"(  -∞,   +∞)   &  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   &  [   1,    2]  ==  [   0,    2]",
-		"(  -∞,   +∞)   &  [   0,    0]  ==  [   0,    0]",
-		"[   3,    6]   &  [...empty..]  ==  [...empty..]",
-		"[...empty..]   &  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   &  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   &  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  &  [  -5,   -5]  ==  [   3,    3]",
+		"[   3,    3]  &  [   0,    0]  ==  [   0,    0]",
+		"[   0,    0]  &  [  -7,    7]  ==  [   0,    0]",
+		"[   0,    2]  &  [   0,    5]  ==  [   0,    2]",
+		"[   3,    6]  &  [  10,   15]  ==  [   0,    6]",
+		"[   3,   +∞)  &  [  -4,   -2]  ==  [   0,   +∞)",
+		"[   3,   +∞)  &  [  10,   15]  ==  [   0,   15]",
+		"[   3,   +∞)  &  (  -∞,   15]  ==  [   0,   +∞)",
+		"[   3,    6]  &  (  -∞,   15]  ==  [   0,    6]",
+		"[   3,    6]  &  (  -∞,   +∞)  ==  [   0,    6]",
+		"(  -∞,   +∞)  &  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  &  [   1,    2]  ==  [   0,    2]",
+		"(  -∞,   +∞)  &  [   0,    0]  ==  [   0,    0]",
+		"[   3,    6]  &  [...empty..]  ==  [...empty..]",
+		"[...empty..]  &  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  &  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  &  [...empty..]  ==  [...empty..]",
 
-		"[   1,    4]   &  [ -11,  -10]  ==  [   0,    4]",
+		"[   1,    4]  &  [ -11,  -10]  ==  [   0,    4]",
 
-		"[   1,    4]   &  [  -6,    2]  ==  [   0,    4]",
+		"[   1,    4]  &  [  -6,    2]  ==  [   0,    4]",
 
-		"[  -3,   -1]   &  [   0,    3]  ==  [   0,    3]",
-		"[  -1,    4]   &  [   0,    3]  ==  [   0,    3]",
-		"[   0,    4]   &  [   0,    3]  ==  [   0,    3]",
-		"[   1,    4]   &  [   0,    3]  ==  [   0,    3]",
+		"[  -3,   -1]  &  [   0,    3]  ==  [   0,    3]",
+		"[  -1,    4]  &  [   0,    3]  ==  [   0,    3]",
+		"[   0,    4]  &  [   0,    3]  ==  [   0,    3]",
+		"[   1,    4]  &  [   0,    3]  ==  [   0,    3]",
 
-		"[  -3,   -1]   &  [   2,    3]  ==  [   0,    3]",
-		"[  -1,    4]   &  [   2,    3]  ==  [   0,    3]",
-		"[   0,    4]   &  [   2,    3]  ==  [   0,    3]",
-		"[   1,    4]   &  [   2,    3]  ==  [   0,    3]",
+		"[  -3,   -1]  &  [   2,    3]  ==  [   0,    3]",
+		"[  -1,    4]  &  [   2,    3]  ==  [   0,    3]",
+		"[   0,    4]  &  [   2,    3]  ==  [   0,    3]",
+		"[   1,    4]  &  [   2,    3]  ==  [   0,    3]",
 
-		"[  -9,   +∞)   &  [   2,   +∞)  ==  [   0,   +∞)",
-		"[  -1,   +∞)   &  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   0,   +∞)   &  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   1,   +∞)   &  [   2,   +∞)  ==  [   0,   +∞)",
-		"[   7,   +∞)   &  [   2,   +∞)  ==  [   0,   +∞)",
-		"[  -1,    1]   &  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"[   0,    0]   &  (  -∞,   +∞)  ==  [   0,    0]",
-		"[   1,    1]   &  (  -∞,   +∞)  ==  [   0,    1]",
+		"[  -9,   +∞)  &  [   2,   +∞)  ==  [   0,   +∞)",
+		"[  -1,   +∞)  &  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   0,   +∞)  &  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   1,   +∞)  &  [   2,   +∞)  ==  [   0,   +∞)",
+		"[   7,   +∞)  &  [   2,   +∞)  ==  [   0,   +∞)",
+		"[  -1,    1]  &  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[   0,    0]  &  (  -∞,   +∞)  ==  [   0,    0]",
+		"[   1,    1]  &  (  -∞,   +∞)  ==  [   0,    1]",
 
-		"[   1,    3]   &  [   4,    9]  ==  [   0,    3]",
-		"[   3,    4]   &  [   5,    6]  ==  [   1,    4]",
-		"[   4,    5]   &  [   6,    7]  ==  [   4,    5]",
-		"[   7,    7]   &  [  12,   14]  ==  [   4,    6]",
+		"[   1,    3]  &  [   4,    9]  ==  [   0,    3]",
+		"[   3,    4]  &  [   5,    6]  ==  [   1,    4]",
+		"[   4,    5]  &  [   6,    7]  ==  [   4,    5]",
+		"[   7,    7]  &  [  12,   14]  ==  [   4,    6]",
 
-		"[   5,    6]   &  [   6,    7]  ==  [   4,    6]",
-		"[   5,    6]   &  [   6,    8]  ==  [   0,    6]",
-		"[   5,    9]   &  [   6,    8]  ==  [   0,    8]",
-		"[   5,    9]   &  [   6,    9]  ==  [   0,    9]",
+		"[   5,    6]  &  [   6,    7]  ==  [   4,    6]",
+		"[   5,    6]  &  [   6,    8]  ==  [   0,    6]",
+		"[   5,    9]  &  [   6,    8]  ==  [   0,    8]",
+		"[   5,    9]  &  [   6,    9]  ==  [   0,    9]",
 
-		"[   5,    6]   &  [   3,   +∞)  ==  [   0,    6]",
-		"[   5,    9]   &  [   3,   +∞)  ==  [   0,    9]",
-		"[   5,    6]   &  [   7,   +∞)  ==  [   0,    6]",
-		"[   5,    9]   &  [   7,   +∞)  ==  [   0,    9]",
-		"[   5,    6]   &  [   8,   +∞)  ==  [   0,    6]",
-		"[   5,    9]   &  [   8,   +∞)  ==  [   0,    9]",
-		"[   5,    6]   &  [   9,   +∞)  ==  [   0,    6]",
-		"[   5,    9]   &  [   9,   +∞)  ==  [   0,    9]",
-		"[   5,    6]   &  [  12,   +∞)  ==  [   0,    6]",
-		"[   5,    9]   &  [  12,   +∞)  ==  [   0,    9]",
+		"[   5,    6]  &  [   3,   +∞)  ==  [   0,    6]",
+		"[   5,    9]  &  [   3,   +∞)  ==  [   0,    9]",
+		"[   5,    6]  &  [   7,   +∞)  ==  [   0,    6]",
+		"[   5,    9]  &  [   7,   +∞)  ==  [   0,    9]",
+		"[   5,    6]  &  [   8,   +∞)  ==  [   0,    6]",
+		"[   5,    9]  &  [   8,   +∞)  ==  [   0,    9]",
+		"[   5,    6]  &  [   9,   +∞)  ==  [   0,    6]",
+		"[   5,    9]  &  [   9,   +∞)  ==  [   0,    9]",
+		"[   5,    6]  &  [  12,   +∞)  ==  [   0,    6]",
+		"[   5,    9]  &  [  12,   +∞)  ==  [   0,    9]",
 
-		"(  -∞,   -3]   &  [  -3,   -2]  ==  (  -∞,   -3]",
-		"[   2,   +∞)   &  [   1,    2]  ==  [   0,    2]",
+		"(  -∞,   -3]  &  [  -3,   -2]  ==  (  -∞,   -3]",
+		"[   2,   +∞)  &  [   1,    2]  ==  [   0,    2]",
 	)
 }
 
 func TestOpOr(tt *testing.T) {
 	testOp(tt,
-		"[   3,    3]   |  [  -5,   -5]  ==  [  -5,   -5]",
-		"[   3,    3]   |  [   0,    0]  ==  [   3,    3]",
-		"[   0,    0]   |  [  -7,    7]  ==  [  -7,    7]",
-		"[   0,    2]   |  [   0,    5]  ==  [   0,    7]",
-		"[   3,    6]   |  [  10,   15]  ==  [  11,   15]",
-		"[   3,   +∞)   |  [  -4,   -2]  ==  [  -4,   -1]",
-		"[   3,   +∞)   |  [  10,   15]  ==  [  10,   +∞)",
-		"[   3,   +∞)   |  (  -∞,   15]  ==  (  -∞,   +∞)",
-		"[   3,    6]   |  (  -∞,   15]  ==  (  -∞,   15]",
-		"[   3,    6]   |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   |  [   1,    2]  ==  (  -∞,   +∞)",
-		"(  -∞,   +∞)   |  [   0,    0]  ==  (  -∞,   +∞)",
-		"[   3,    6]   |  [...empty..]  ==  [...empty..]",
-		"[...empty..]   |  [  10,   15]  ==  [...empty..]",
-		"[...empty..]   |  [...empty..]  ==  [...empty..]",
-		"(  -∞,   +∞)   |  [...empty..]  ==  [...empty..]",
+		"[   3,    3]  |  [  -5,   -5]  ==  [  -5,   -5]",
+		"[   3,    3]  |  [   0,    0]  ==  [   3,    3]",
+		"[   0,    0]  |  [  -7,    7]  ==  [  -7,    7]",
+		"[   0,    2]  |  [   0,    5]  ==  [   0,    7]",
+		"[   3,    6]  |  [  10,   15]  ==  [  11,   15]",
+		"[   3,   +∞)  |  [  -4,   -2]  ==  [  -4,   -1]",
+		"[   3,   +∞)  |  [  10,   15]  ==  [  10,   +∞)",
+		"[   3,   +∞)  |  (  -∞,   15]  ==  (  -∞,   +∞)",
+		"[   3,    6]  |  (  -∞,   15]  ==  (  -∞,   15]",
+		"[   3,    6]  |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  |  [   1,    2]  ==  (  -∞,   +∞)",
+		"(  -∞,   +∞)  |  [   0,    0]  ==  (  -∞,   +∞)",
+		"[   3,    6]  |  [...empty..]  ==  [...empty..]",
+		"[...empty..]  |  [  10,   15]  ==  [...empty..]",
+		"[...empty..]  |  [...empty..]  ==  [...empty..]",
+		"(  -∞,   +∞)  |  [...empty..]  ==  [...empty..]",
 
-		"[   1,    4]   |  [ -11,  -10]  ==  [ -11,   -9]",
+		"[   1,    4]  |  [ -11,  -10]  ==  [ -11,   -9]",
 
-		"[   1,    4]   |  [  -6,    2]  ==  [  -6,    6]",
+		"[   1,    4]  |  [  -6,    2]  ==  [  -6,    6]",
 
-		"[  -3,   -1]   |  [   0,    3]  ==  [  -3,   -1]",
-		"[  -1,    4]   |  [   0,    3]  ==  [  -1,    7]",
-		"[   0,    4]   |  [   0,    3]  ==  [   0,    7]",
-		"[   1,    4]   |  [   0,    3]  ==  [   1,    7]",
+		"[  -3,   -1]  |  [   0,    3]  ==  [  -3,   -1]",
+		"[  -1,    4]  |  [   0,    3]  ==  [  -1,    7]",
+		"[   0,    4]  |  [   0,    3]  ==  [   0,    7]",
+		"[   1,    4]  |  [   0,    3]  ==  [   1,    7]",
 
-		"[  -3,   -1]   |  [   2,    3]  ==  [  -2,   -1]",
-		"[  -1,    4]   |  [   2,    3]  ==  [  -1,    7]",
-		"[   0,    4]   |  [   2,    3]  ==  [   2,    7]",
-		"[   1,    4]   |  [   2,    3]  ==  [   2,    7]",
+		"[  -3,   -1]  |  [   2,    3]  ==  [  -2,   -1]",
+		"[  -1,    4]  |  [   2,    3]  ==  [  -1,    7]",
+		"[   0,    4]  |  [   2,    3]  ==  [   2,    7]",
+		"[   1,    4]  |  [   2,    3]  ==  [   2,    7]",
 
-		"[  -9,   +∞)   |  [   2,   +∞)  ==  [  -9,   +∞)",
-		"[  -1,   +∞)   |  [   2,   +∞)  ==  [  -1,   +∞)",
-		"[   0,   +∞)   |  [   2,   +∞)  ==  [   2,   +∞)",
-		"[   1,   +∞)   |  [   2,   +∞)  ==  [   2,   +∞)",
-		"[   7,   +∞)   |  [   2,   +∞)  ==  [   7,   +∞)",
-		"[  -1,    1]   |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"[   0,    0]   |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
-		"[   1,    1]   |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[  -9,   +∞)  |  [   2,   +∞)  ==  [  -9,   +∞)",
+		"[  -1,   +∞)  |  [   2,   +∞)  ==  [  -1,   +∞)",
+		"[   0,   +∞)  |  [   2,   +∞)  ==  [   2,   +∞)",
+		"[   1,   +∞)  |  [   2,   +∞)  ==  [   2,   +∞)",
+		"[   7,   +∞)  |  [   2,   +∞)  ==  [   7,   +∞)",
+		"[  -1,    1]  |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[   0,    0]  |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
+		"[   1,    1]  |  (  -∞,   +∞)  ==  (  -∞,   +∞)",
 
-		"[   1,    3]   |  [   4,    9]  ==  [   5,   11]",
-		"[   3,    4]   |  [   5,    6]  ==  [   5,    7]",
-		"[   4,    5]   |  [   6,    7]  ==  [   6,    7]",
-		"[   7,    7]   |  [  12,   14]  ==  [  15,   15]",
+		"[   1,    3]  |  [   4,    9]  ==  [   5,   11]",
+		"[   3,    4]  |  [   5,    6]  ==  [   5,    7]",
+		"[   4,    5]  |  [   6,    7]  ==  [   6,    7]",
+		"[   7,    7]  |  [  12,   14]  ==  [  15,   15]",
 
-		"[   5,    6]   |  [   6,    7]  ==  [   6,    7]",
-		"[   5,    6]   |  [   6,    8]  ==  [   6,   14]",
-		"[   5,    9]   |  [   6,    8]  ==  [   6,   15]",
-		"[   5,    9]   |  [   6,    9]  ==  [   6,   15]",
+		"[   5,    6]  |  [   6,    7]  ==  [   6,    7]",
+		"[   5,    6]  |  [   6,    8]  ==  [   6,   14]",
+		"[   5,    9]  |  [   6,    8]  ==  [   6,   15]",
+		"[   5,    9]  |  [   6,    9]  ==  [   6,   15]",
 
-		"[   5,    6]   |  [   3,   +∞)  ==  [   5,   +∞)",
-		"[   5,    9]   |  [   3,   +∞)  ==  [   5,   +∞)",
-		"[   5,    6]   |  [   7,   +∞)  ==  [   7,   +∞)",
-		"[   5,    9]   |  [   7,   +∞)  ==  [   7,   +∞)",
-		"[   5,    6]   |  [   8,   +∞)  ==  [  13,   +∞)",
-		"[   5,    9]   |  [   8,   +∞)  ==  [   8,   +∞)",
-		"[   5,    6]   |  [   9,   +∞)  ==  [  13,   +∞)",
-		"[   5,    9]   |  [   9,   +∞)  ==  [   9,   +∞)",
-		"[   5,    6]   |  [  12,   +∞)  ==  [  13,   +∞)",
-		"[   5,    9]   |  [  12,   +∞)  ==  [  12,   +∞)",
+		"[   5,    6]  |  [   3,   +∞)  ==  [   5,   +∞)",
+		"[   5,    9]  |  [   3,   +∞)  ==  [   5,   +∞)",
+		"[   5,    6]  |  [   7,   +∞)  ==  [   7,   +∞)",
+		"[   5,    9]  |  [   7,   +∞)  ==  [   7,   +∞)",
+		"[   5,    6]  |  [   8,   +∞)  ==  [  13,   +∞)",
+		"[   5,    9]  |  [   8,   +∞)  ==  [   8,   +∞)",
+		"[   5,    6]  |  [   9,   +∞)  ==  [  13,   +∞)",
+		"[   5,    9]  |  [   9,   +∞)  ==  [   9,   +∞)",
+		"[   5,    6]  |  [  12,   +∞)  ==  [  13,   +∞)",
+		"[   5,    9]  |  [  12,   +∞)  ==  [  12,   +∞)",
 
-		"(  -∞,   -3]   |  [  -3,   -2]  ==  [  -3,   -1]",
-		"[   2,   +∞)   |  [   1,    2]  ==  [   2,   +∞)",
+		"(  -∞,   -3]  |  [  -3,   -2]  ==  [  -3,   -1]",
+		"[   2,   +∞)  |  [   1,    2]  ==  [   2,   +∞)",
 	)
 }
 
diff --git a/lib/interval/radial_test.go b/lib/interval/radial_test.go
index e69acfb..4cd1a94 100644
--- a/lib/interval/radial_test.go
+++ b/lib/interval/radial_test.go
@@ -440,18 +440,18 @@
 	return radialOutPair{ox | oy, ox | oy}
 }
 
-var riOperators = map[string]func(radialInput, radialInput) radialOutPair{
-	"+":  radialInput.Add,
-	"-":  radialInput.Sub,
-	"*":  radialInput.Mul,
-	"/":  radialInput.Quo,
-	"<<": radialInput.Lsh,
-	">>": radialInput.Rsh,
-	"&":  radialInput.And,
-	"|":  radialInput.Or,
+var riOperators = map[rune]func(radialInput, radialInput) radialOutPair{
+	'+': radialInput.Add,
+	'-': radialInput.Sub,
+	'*': radialInput.Mul,
+	'/': radialInput.Quo,
+	'«': radialInput.Lsh,
+	'»': radialInput.Rsh,
+	'&': radialInput.And,
+	'|': radialInput.Or,
 }
 
-func bruteForce(x IntRange, y IntRange, opKey string) (z IntRange, ok bool) {
+func bruteForce(x IntRange, y IntRange, opKey rune) (z IntRange, ok bool) {
 	op := riOperators[opKey]
 	iMin, iMax := enumerate(x)
 	jMin, jMax := enumerate(y)
@@ -472,7 +472,7 @@
 	}
 
 	switch opKey {
-	case "∪":
+	case '∪':
 		if iMinC, iMaxC := iMin.canonicalize(), iMax.canonicalize(); iMinC <= iMaxC {
 			merge(radialOutPair{iMinC, iMaxC})
 		}
@@ -486,7 +486,7 @@
 			result[1] = +roRadius + 1
 		}
 
-	case "∩":
+	case '∩':
 		iMinC, iMaxC := iMin.canonicalize(), iMax.canonicalize()
 		for j := jMin; j <= jMax; j++ {
 			jC := j.canonicalize()
