code: func (x duration) Binary(op syntax.Token, y starlark.Value, side starlark.Side) (starlark.Value, error) {
  	switch y := y.(type) {
  	case starlark.Int:
  		switch {
  		case op == syntax.STAR:
  			return duration{x.Int.Mul(y)}, nil
  		case op == syntax.SLASH && side == starlark.Left:
  			return duration{x.Int.Div(y)}, nil
  		}
  
  	case duration:
  		switch {
  		case op == syntax.PLUS:
  			return duration{x.Int.Add(y.Int)}, nil
  		case op == syntax.MINUS && side == starlark.Left:
  			return duration{x.Int.Sub(y.Int)}, nil
  		case op == syntax.MINUS && side == starlark.Right:
  			return duration{y.Int.Sub(x.Int)}, nil
  		case op == syntax.SLASH && side == starlark.Left:
  			return x.Int.Div(y.Int), nil
  		case op == syntax.SLASH && side == starlark.Right:
  			return y.Int.Div(x.Int), nil
  		}
  	}
  
  	// All other combinations aren't supported.
  	return nil, nil
  }
docs: // Binary implements binary operations between durations and ints.