diff --git a/HACKING b/HACKING
index 322ae0b..d2e11a9 100644
--- a/HACKING
+++ b/HACKING
@@ -392,8 +392,51 @@ In writing arithmetic comparisons, use "<" and "<=" rather than
   http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126
 
 const placement:
-Write "Type const *var", not "const Type *var".
-FIXME: dig up justification
+-----------------
+Write "Type const *var", not "const Type *var". This is a topic of debate
+among programmers, and there is no common consensus regarding the placement
+of const. However, if you use the "Type const *var" form, variable
+declarations become a lot more easier to read that form is much more
+consistent with the right-left rule:
+
+    `Type const* p` means "p points to a constant Type": the Type value
+    being pointed to by p cannot be changed via p.
+
+        *p = new_value; // Illegal: Modifies the value being pointed to.
+        ++p; // Legal: Merely modifies the pointer, not the pointee.
+
+    `Type* const p` means "p is a const pointer to a Type": you can't change
+    the pointer p, but you can change the value being pointed to by p via p.
+
+        *p = new_value; // Legal: Modifying the value being pointed to.
+        ++p; // Illegal: Modifies the pointer.
+
+    `Type const* const p` means "p is a constant pointer to a constant
+    Type": you can't change the pointer p itself, nor can you change the
+    value being pointed to via p.
+
+        *p = new_value; // Illegal: Modifies the value being pointed to.
+        ++p; // Illegal: Modifies the pointer.
+
+[Examples copied and modified from the Parashift C++ FAQ:
+http://www.parashift.com/c++-faq-lite/const-ptr-vs-ptr-const.html]
+
+Now contrast `Type const *p` with `const Type *p`, which shall read "p
+points to a Type that is const", which definitely does not go with the
+flow of the right-left rule.
+
+One more reason to choose the `Type const *p` style is when using typedefs
+
+    typedef int* intptr_t;
+    ...
+    void f(const intptr_t p); // p is NOT `const int*`, but is `int *const`
+    void g(intptr_t const p); // same as above, but much clearer.
+
+[Unrelated note: for this reason, you should minimize typedefs involving
+pointers]
+
+Read more about the right-left rule here:
+http://www.unixwiz.net/techtips/reading-cdecl.html
 
 
 Be nice to translators
