Closing tags and curly braces are only redundancy if the compiler/interpreter looks at both them and at the whitespace. I don't think any existing languages do that.
It'd be even better (in this way at least) if the compiler required they match, but you are also a parser.