diff --git a/Doc/c-api/bytearray.rst b/Doc/c-api/bytearray.rst
index b90b3ff..4bc5459 100644
--- a/Doc/c-api/bytearray.rst
+++ b/Doc/c-api/bytearray.rst
@@ -18,6 +18,8 @@
    This instance of :ctype:`PyTypeObject` represents the Python bytearray type;
    it is the same object as ``bytearray`` in the Python layer.
 
+Type check macros
+^^^^^^^^^^^^^^^^^
 
 .. cfunction:: int PyByteArray_Check(PyObject *o)
 
@@ -31,6 +33,9 @@
    subtype of the bytearray type.
 
 
+Direct API functions
+^^^^^^^^^^^^^^^^^^^^
+
 .. cfunction:: PyObject* PyByteArray_FromObject(PyObject *o)
 
    Return a new bytearray object from any object, *o*, that implements the
@@ -45,32 +50,36 @@
    failure, *NULL* is returned.
 
 
+.. cfunction:: PyObject* PyByteArray_Concat(PyObject *a, PyObject *b)
+
+   Concat bytearrays *a* and *b* and return a new bytearray with the result.
+
+
 .. cfunction:: Py_ssize_t PyByteArray_Size(PyObject *bytearray)
 
    Return the size of *bytearray* after checking for a *NULL* pointer.
 
 
-.. cfunction:: Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
-
-   Macro version of :cfunc:`PyByteArray_Size` that doesn't do pointer checking.
-
-
 .. cfunction:: char* PyByteArray_AsString(PyObject *bytearray)
 
    Return the contents of *bytearray* as a char array after checking for a
    *NULL* pointer.
 
 
-.. cfunction:: char* PyByteArray_AS_STRING(PyObject *bytearray)
-
-   Macro version of :cfunc:`PyByteArray_AsString` that doesn't check pointers.
-
-
-.. cfunction:: PyObject* PyByteArray_Concat(PyObject *a, PyObject *b)
-
-   Concat bytearrays *a* and *b* and return a new bytearray with the result.
-
-
-.. cfunction:: PyObject* PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
+.. cfunction:: int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
 
    Resize the internal buffer of *bytearray* to *len*.
+
+Macros
+^^^^^^
+
+These macros trade safety for speed and they don't check pointers.
+
+.. cfunction:: char* PyByteArray_AS_STRING(PyObject *bytearray)
+
+   Macro version of :cfunc:`PyByteArray_AsString`.
+
+
+.. cfunction:: Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
+
+   Macro version of :cfunc:`PyByteArray_Size`.
