With respect, I believe
Begin["`Private`"] is acceptable, and perhaps preferable.
Begin["Private`"] establishes a context
"Private`". This is fine, but if two packages do that they will share that context.
Begin["`Private`"] establishes context
HNotation2`Private`. This will be private to this package only.
HTransR appears to be undefined is that it is defined within context
HNotation2`Private`, which is not on the
$ContextPath -- it can be accessed by its full name as
If you wish it to be accessible by its short nme, you could place a usage statement for it before
Begin["`Private`"], or just define it there. Then it will be in the package context, which is placed on the context path when the package is loaded.