parentheses in C are used when you have to fight the language. Either you are type casting because the type system is shit or you are using them because the horribly complicated precedence chart caused you to miscalculate order of operation. Parentheses in C++ are associated with pain and ugliness because they represent the language failing at its promise to anticipate your needs.
This kind of codependent, abusive relationship does not exist between Lisp and a Lisp programmer.
At any rate, it is far more sane to do this with strings than with operators. Godddamn.
(+ (anus "|-----|") (anus "|----------|"))
C++ operator overloading is for nerds who don't know the difference between syntactic cleverness and semantic beauty.