Does Haddock render `MINIMAL` pragmas correctly?

Has anyone noticed that Haddock renders MINIMAL pragmas incorrectly? For example System.Random.Stateful.FrozenGen says

Minimal complete definition

(modifyGen | freezeGen, overwriteGen)

which looks like it must mean ((modifyGen | freezeGen), overwriteGen), yet the source says

{-# MINIMAL (modifyGen|(freezeGen,overwriteGen)) #-}

There don’t seem to be any open issues about this on the issue tracker. Surely I can’t be the first person to have spotted this?

6.20.5. MINIMAL pragma

A vertical bar denotes disjunction, i.e. one of the two sides is required. A comma denotes conjunction, i.e. both sides are required. Conjunction binds stronger than disjunction.

Ah, thanks! That resolves it. So it’s rendering it “correctly” as in, in an equivalent form rather than literally what was specified. Using comma as a conjunction operator rather than a tuple element separator is an interesting stylistic choice.

I think this choice is confusing and if we don’t change the syntax, Haddock should use explicit parenthesis when rendering these pragmas.