Adverbs in J are incredibly useful. Imagine a modifier that will preprocess the arguments that are sent to a verb, noun or another adverb and you have an adverb. Some adverbs change their action depending both on what part of speech they modify and how many arguments the resulting entity processes.
This makes sense when you think that a verb with one argument probably wants its adverb to perform a different modification than when it has two arguments. In the case of ~, one argument ends up being duplicated to both inputs of the verb and when two arguments are present then the right and left inputs to the verb are reversed.
The following video attempts to explain this and also reveals some of the ideas I have come up with for a visual J interface. Let the comments begin!