def METHOD_NAME(
    cls: t.Type[T],
    method: t.Callable[t.Concatenate[T, P], t.Any],
    name: str,
    *,
    batchable: bool = False,
    batch_dim: tuple[int, int] | int = 0,
    input_spec: LazyType[t.Any] | t.Tuple[LazyType[t.Any], ...] | None = None,
    output_spec: LazyType[t.Any] | None = None,
):
    meth = Runnable.method(
        method,
        batchable=batchable,
        batch_dim=batch_dim,
        input_spec=input_spec,
        output_spec=output_spec,
    )
    setattr(cls, name, meth)
    meth.__set_name__(cls, name)