Hello Oleg,
nicely done! I wrote the `GHC.TypeLits` module, and the original plan was that it should just provide the basics needed by the compiler, and other libraries would define a nicer user-facing interface. So, with this in mind, `AppendSymbol` makes a lot of sense to me. However, the original plan didn't quite happen, and everyone seems to be using `GHC.TypeLits` directly, so maybe picking a shorter name is a good idea.
To me, personally, `(<>)` and `(++)` look the nicest. I agree with you that `(++)` might suggest that the arguments are type-level lists, which they aren't. OTOH, `(<>)` looks a lot like `(:<>:)`, which is also defined in `GHC.TypeLits` and is used for horizontal concatenation of error messages.
Cheers,
-Iavor