[ and ] characters to specify templates instead of the < and > characters that we see in most other languages.identifier[literal](), but every case parses into a different AST. So I wonder if there was any specific reason for choosing the current syntax or it was only for using different tokens than < and >.