This change allows you to write
f :: (Eq a) => (Ord b) => a -> b -> b
Previously you could only have a forall and context after '->'
but not after '=>' which is strange and inconsistent.
Making the parser a bit more generous didn't change the number
of shift/reduce conflicts.
tc236 tests.
ctypedoc :: { LHsType RdrName }
: 'forall' tv_bndrs '.' ctypedoc { LL $ mkExplicitHsForAllTy $2 (noLoc []) $4 }
- | context '=>' gentypedoc { LL $ mkImplicitHsForAllTy $1 $3 }
+ | context '=>' ctypedoc { LL $ mkImplicitHsForAllTy $1 $3 }
-- A type of form (context => type) is an *implicit* HsForAllTy
| gentypedoc { $1 }