There is an issue #1216: "concatenation of type level symbols missing" [1].
I made a working patch, but we need to figure out the details.
As the patch introduces new non-obvious name to the base library, I’m starting a thread in libraries@ to figure out community's opinion.
I’m proposing to add `type family (n :: Symbol) <> (m :: Symbol)` to `GHC.TypeLits`.
Currently implementation uses (<>). Another options are (++), (+++) or `AppendSymbol`.
- (<>) resembles Semigroup operation, as (+) resembles Num operation
- (++) is a list appending operation. IMHO it’s a bad choice
- (+++) is used by ghc-typelits-symbols plugin
- `AppendSymbol` is sensible too, if libraries want to define own versions of type-level (<>) (e.g. polykinded)
Discussion period: 2 weeks.
Cheers,
Oleg Grenrus.