Tweak list-map3 so that it doesn't work anymore.

- When substituting "(t, u)" for "a" in a function type "[a] (...)", the
property that all types appearing in the function type are unfolded no longer
holds (which causes problems later on).
- I could write a pass that expands such function types, but I feel like the
problem is more general and it may be worth trying to tackle, say, a subtraction
such as "(a, a) - (=x, =y) * x @ a * y @ a".
- I wrote a pass that made sure absolutely everything was expanded in function
types; the consequence was that function types became much more heavyweight.
This might allow us to get rid of the extra, non user-provided names.
Add a new parameter to the functions in [Permissions].

- The parameter tells whether we're in a linear context, that is, basically
everywhere except in the arguments of type applications.
First try. Doesn't work. Need to think harder.
Revert "First try. Doesn't work. Need to think harder."

This reverts commit 06c294929724b6f85c2f941d6f1df26a38f67738.
Different attempt, doesn't work either.