func Example_comparable() {
	oranges := []orange{5, 2, 24}
	Sort(oranges)
	fmt.Println(oranges)
}
A type may implement a `func (t T) Compare(other T) int` function. In this case it could be just
used with the order package functions.
package order
import (
	"fmt"
	"strings"
	"time"
)
func Example() {
	fmt.Println("now > one-second-ago ?",
		Is(time.Now()).Greater(time.Now().Add(-time.Second)))
	fmt.Println("foo == bar ?",
		Is("foo").Equal("bar"))
	if is := Is(3); is.GreaterEqual(3) && is.Less(4) {
		fmt.Println("3 is in [3,4)")
	}
}
func Example_sliceOperations() {
	list := []int{2, 1, 3}
	Sort(list)
	fmt.Println("Sorted:", list)
	fmt.Println("Index of 2:", Search(list, 2))
	minI, maxI := MinMax(list)
	fmt.Printf("Min: %d, max: %d\n", list[minI], list[maxI])
	Select(list, len(list)/2)
	fmt.Printf("Median: %d\n", list[1])
}
func Example_complex() {
	type person struct {
		name string
		age  int
	}
	orderPersons := By(
		func(a, b person) int { return strings.Compare(a.name, b.name) },
		func(a, b person) int { return a.age - b.age },
	).Reversed()
	list := []person{
		{"Bar", 10},
		{"Foo", 10},
		{"Bar", 11},
	}
	orderPersons.Sort(list)
	fmt.Println("Reversed:", list)
	fmt.Println("Index of {Foo 10}:", orderPersons.Search(list, person{"Foo", 10}))
}
type orange int
func (o orange) Compare(other orange) int { return int(o - other) }