Simplify middle() and fix docs

The special cases gave the same result as the general rule, which is
the only intelligible one. Fix the docs and explain the rule as regards
the result type.