Code Golf
add tag
EsolangingFruit
I recently finished a Brain-Flak-inspired functional language called Flurry. You can find a detailed description of the language's semantics [here](https://github.com/Reconcyl/flurry).

One peculiarity of the language is that, because of the limitations of strict evaluation and the fact that programs only have access to a single stack, I have found it very difficult to write an expression that has the side effect of swapping the top two elements on the stack. This is the shortest way I've found to do it so far:

    <[<><<>()[<>{{}}]()>]()[<>{{}}]()>{}{}{{()}}

## The Challenge

Your task is to write a Flurry expression such that, if the two values on top of the stack are `a` and `b`, the top two values are `b` and `a` after the expression is evaluated. The return value of the expression itself is irrelevant (in the above example, it returns the K combinator).

- The effect of the expression cannot depend on any other stack values or on the height of the stack.
- The effect of the expression cannot depend on the top two stack values being Church numerals. They may be arbitrary functions.

This is code-golf, so the shortest valid answer (in bytes) wins.

This room is for discussion about this question.

Once logged in you can direct comments to any contributor here.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.