Horizontally mirror a brainflak program Your task is to write a program or function which takes a pure brainflak program as input (assume it contains only balanced ()[]{}&lt;&gt;), and output a visually mirrored copy of it.

If you reversed a brainflak program as a string, say ({}()) (add one to an input), you would get ))(}{(, which is not valid.

Instead, you should mirror it, by reversing the direction of the parentheses/brackets/braces/angle-brackets, like what you would see if the program was placed in front of a mirror: ((){}).

Test cases (??? means anything is okay):

()               -&gt; ()
({}[{}])         -&gt; ([{}]{})
()[]             -&gt; []()
&lt;(){}[]&gt;         -&gt; &lt;[]{}()&gt;
([{&lt;()[]{}&lt;&gt;&gt;}]) -&gt;([{&lt;&lt;&gt;{}[]()&gt;}])
(a)              -&gt; ???
{&gt;               -&gt; ???
))(}{(           -&gt; ???
()↵[]            -&gt; ???


This is a code golf challenge, shortest answer per language wins.
Charcoal, 3 bytes

Ｓ‖Ｔ


Try it online! Link is to verbose version of code. Explanation: Ｓ reads the input and implicitly echos it, while ‖ is the mirroring operator, which normally just reverses the input, but the Ｔ modifies it to mirror the characters at the same time.