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

Have you seen

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

Also

List the properties for predicate(s)

HTH