If, for instance, I type help(bagof). into the Prolog REPL, a window pops up with some documentation, the first line of which reads bagof(+Template, :Goal, -Bag).
Are the arguments Template, Goal and Bag just names, or are they formal types that can be systematically researched? (In the first case I would have to rely on the documentation of
bagofto make sense of them; in the latter case I would be able to refer to some other document.)Where can I find documentation for those bits of punctuation preceding the arguments? (In this case the punctuation includes the symbols
+,:and-, but I've seen others.)