When parsing
extremumNewton :: (Eq a, Fractional a) =>
(forall tag. forall tag1.
Tower tag1 (Tower tag a)
-> Tower tag1 (Tower tag a))
-> a -> [a]
the nested `forall` declarations are parsed by
ctypedoc :: { LHsType RdrName }
: 'forall' tv_bndrs '.' ctypedoc {% hintExplicitForall (getLoc $1) >>
ams (sLL $1 $> $ mkExplicitHsForAllTy $2
(noLoc []) $4)
[mj AnnForall $1,mj AnnDot $3] }
This generates a HsForAllTy for the first forall that simply wraps the second one, which is also a `ctypedoc`.