Btw. I found 8 possibilities to concat atoms in Swi Prolog

Have you seen

https://www.swi-prolog.org/gxref.html

Don’t forget to look at the code that implements it for other ideas.

Also

List the properties for predicate(s)

HTH