Use "impl-detail" directive where applicable.
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index a10dbdb..6a7acf9 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -56,13 +56,16 @@
they may be garbage-collected. An implementation is allowed to postpone garbage
collection or omit it altogether --- it is a matter of implementation quality
how garbage collection is implemented, as long as no objects are collected that
-are still reachable. (Implementation note: CPython currently uses a
-reference-counting scheme with (optional) delayed detection of cyclically linked
-garbage, which collects most objects as soon as they become unreachable, but is
-not guaranteed to collect garbage containing circular references. See the
-documentation of the :mod:`gc` module for information on controlling the
-collection of cyclic garbage. Other implementations act differently and CPython
-may change.)
+are still reachable.
+
+.. impl-detail::
+
+ CPython currently uses a reference-counting scheme with (optional) delayed
+ detection of cyclically linked garbage, which collects most objects as soon
+ as they become unreachable, but is not guaranteed to collect garbage
+ containing circular references. See the documentation of the :mod:`gc`
+ module for information on controlling the collection of cyclic garbage.
+ Other implementations act differently and CPython may change.
Note that the use of the implementation's tracing or debugging facilities may
keep objects alive that would normally be collectable. Also note that catching
diff --git a/Doc/reference/executionmodel.rst b/Doc/reference/executionmodel.rst
index 57a2205..9f6170d 100644
--- a/Doc/reference/executionmodel.rst
+++ b/Doc/reference/executionmodel.rst
@@ -128,7 +128,7 @@
itself. ``__builtins__`` can be set to a user-created dictionary to create a
weak form of restricted execution.
-.. note::
+.. impl-detail::
Users should not touch ``__builtins__``; it is strictly an implementation
detail. Users wanting to override values in the built-in namespace should
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index e1b0ada..6481894 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -663,13 +663,13 @@
raised. Otherwise, the list of filled slots is used as the argument list for
the call.
-.. note::
+.. impl-detail::
- An implementation may provide built-in functions whose positional parameters do
- not have names, even if they are 'named' for the purpose of documentation, and
- which therefore cannot be supplied by keyword. In CPython, this is the case for
- functions implemented in C that use :cfunc:`PyArg_ParseTuple` to parse their
- arguments.
+ An implementation may provide built-in functions whose positional parameters
+ do not have names, even if they are 'named' for the purpose of documentation,
+ and which therefore cannot be supplied by keyword. In CPython, this is the
+ case for functions implemented in C that use :cfunc:`PyArg_ParseTuple` to
+ parse their arguments.
If there are more positional arguments than there are formal parameter slots, a
:exc:`TypeError` exception is raised, unless a formal parameter using the syntax
diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst
index 3886601..b9cdd91 100644
--- a/Doc/reference/simple_stmts.rst
+++ b/Doc/reference/simple_stmts.rst
@@ -219,9 +219,11 @@
the length of the assigned sequence, thus changing the length of the target
sequence, if the object allows it.
-(In the current implementation, the syntax for targets is taken to be the same
-as for expressions, and invalid syntax is rejected during the code generation
-phase, causing less detailed error messages.)
+.. impl-detail::
+
+ In the current implementation, the syntax for targets is taken to be the same
+ as for expressions, and invalid syntax is rejected during the code generation
+ phase, causing less detailed error messages.
WARNING: Although the definition of assignment implies that overlaps between the
left-hand side and the right-hand side are 'safe' (for example ``a, b = b, a``
@@ -946,9 +948,11 @@
parameters or in a :keyword:`for` loop control target, :keyword:`class`
definition, function definition, or :keyword:`import` statement.
-(The current implementation does not enforce the latter two restrictions, but
-programs should not abuse this freedom, as future implementations may enforce
-them or silently change the meaning of the program.)
+.. impl-detail::
+
+ The current implementation does not enforce the latter two restrictions, but
+ programs should not abuse this freedom, as future implementations may enforce
+ them or silently change the meaning of the program.
.. index::
statement: exec