protected function guardOperand($operand): void
    {
        if (!is_int($operand) && !is_float($operand)) {
            $message = sprintf(
                'Operand must be an integer or float; received (%s) %s',
                gettype($operand),
                VarPrinter::toString($operand)
            );
            throw new DomainException($message);
        }
    }