from typing import TypeVar, Protocol


T = TypeVar('T')


class RingElement(Protocol):
    def __add__(self: T, other: T, /) -> T: ...
    def __sub__(self: T, other: T, /) -> T: ...
    def __mul__(self: T, other: T, /) -> T: ...
    def __pow__(self: T, other: int, /) -> T: ...
    def __neg__(self: T, /) -> T: ...
