code: func InstanceKeyLess(i, j InstanceKey) bool {
  	iTy := instanceKeyType(i)
  	jTy := instanceKeyType(j)
  
  	switch {
  	case i == j:
  		return false
  	case i == NoKey:
  		return true
  	case j == NoKey:
  		return false
  	case iTy != jTy:
  		// The ordering here is arbitrary except that we want NoKeyType
  		// to sort before the others, so we'll just use the enum values
  		// of InstanceKeyType here (where NoKey is zero, sorting before
  		// any other).
  		return uint32(iTy) < uint32(jTy)
  	case iTy == IntKeyType:
  		return int(i.(IntKey)) < int(j.(IntKey))
  	case iTy == StringKeyType:
  		return string(i.(StringKey)) < string(j.(StringKey))
  	default:
  		// Shouldn't be possible to get down here in practice, since the
  		// above is exhaustive.
  		return false
  	}
  }
docs: // InstanceKeyLess returns true if the first given instance key i should sort
  // before the second key j, and false otherwise.