code: func ReflectSort(slice, compareFunc interface{}) {
  	sortable, err := newReflectSortable(slice, compareFunc)
  	if err != nil {
  		panic(err)
  	}
  	sort.Sort(sortable)
  }
docs: // ReflectSort will sort slice according to compareFunc using reflection.
  // slice can be a slice of any element type including interface{}.
  // compareFunc must have two arguments that are assignable from
  // the slice element type or pointers to such a type.
  // The result of compareFunc must be a bool indicating
  // if the first argument is less than the second.
  // If the element type of slice is interface{}, then the type
  // of the compareFunc arguments can be any type and dynamic
  // casting from the interface value or its address will be attempted.