diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md
index a02012b..9c83944 100644
--- a/CppCoreGuidelines.md
+++ b/CppCoreGuidelines.md
@@ -11620,7 +11620,7 @@ If you feel the need for a lot of casts, there may be a fundamental design probl
##### Alternatives
-Casts are widely (mis) used. Modern C++ has constructs that eliminate the need for casts in many contexts, such as
+Casts are widely (mis) used. Modern C++ has rules and constructs that eliminate the need for casts in many contexts, such as
* Use templates
* Use `std::variant`
@@ -11629,9 +11629,10 @@ Casts are widely (mis) used. Modern C++ has constructs that eliminate the need f
##### Enforcement
* Force the elimination of C-style casts
-* Warn if there are many functional style casts (there is an obvious problem in quantifying 'many').
+* Warn if there are many functional style casts (there is an obvious problem in quantifying 'many')
* The [type profile](#Pro-type-reinterpretcast) bans `reinterpret_cast`.
-* Warn against [unnecessary pointer casts](#Pro-type-unnecessarycast).
+* Warn against [identity casts](#Pro-type-identitycast) between pointer types, where the source and target types are the same (#Pro-type-identitycast)
+* Warn if a pointer cast could be [implicit](#Pro-type-implicitpointercast)
### ES.49: If you must use a cast, use a named cast
@@ -19401,8 +19402,9 @@ Type safety profile summary:
* Type.1: [Avoid casts](#Res-casts):
a. Don't use `reinterpret_cast`; A strict version of [Avoid casts](#Res-casts) and [prefer named casts](#Res-casts-named).
-b. Don't a `static_cast` for arithmetic types; A strict version of [Avoid casts](#Res-casts) and [prefer named casts](#Res-casts-named).
-c. Don't use pointer unnecessary pointer casts; A strict version of [Avoid casts](#Res-casts)
+b. Don't use `static_cast` for arithmetic types; A strict version of [Avoid casts](#Res-casts) and [prefer named casts](#Res-casts-named).
+c. Don't cast between pointer types where the source type and the target type are the same; A strict version of [Avoid casts](#Res-casts).
+d. Don't cast between pointer types when the conversion could be implicit; A strict version of [Avoid casts](#Res-casts).
* Type.2: Don't use `static_cast` to downcast:
[Use `dynamic_cast` instead](#Rh-dynamic_cast).
* Type.3: Don't use `const_cast` to cast away `const` (i.e., at all):
diff --git a/scripts/hunspell/isocpp.dic b/scripts/hunspell/isocpp.dic
index a1a79eb..f74b369 100644
--- a/scripts/hunspell/isocpp.dic
+++ b/scripts/hunspell/isocpp.dic
@@ -214,6 +214,7 @@ HTTP
Hyslop
i2
IDE
+identitycast
IDEs
IEC
ifdef
@@ -221,6 +222,7 @@ iff
ifstream
impactful
Impl
+implicitpointercast
incompleat
increment1
Incrementable
@@ -551,7 +553,6 @@ uniqueptrparam
unittest
unittests
unnamed2
-unnecessarycast
use1
users'
UTF