<div dir="auto">HugsMode supports signatures in patterns, roughly equivalent to the (now deprecated) `PatternSignatures` GHC extension. Hugs doesn't support GHC's full `ScopedTypeVariables` functionality with the daft/bogus `forall` quantification on stand-alone signatures -- which IMO is a wart.</div><div dir="auto"><br></div><div dir="auto">I'm reading the 2018 paper 'Type variables in patterns' Eisenberg/Breitner/Peyton Jones, section 3.1, 3.5 "a scoped type variable may refer only to another type variable". Hugs applies the same rule.</div><div dir="auto"><br></div><div dir="auto">I'm persuaded by section 3.5's saying that seems an arbitrary and unnecessary restriction. "We therefore propose to simply drop this restriction." This is github PR #128 in GHC.</div><div dir="auto"><br></div><div dir="auto">Done in Hugs: I've just suppressed the error message, is in one validation routine in one module.</div><div dir="auto"><br></div><div dir="auto">So this example compiles</div><div dir="auto"><br></div><div dir="auto">> prefix :: Int -> [[Int]] -> [[Int]]</div><div dir="auto">> prefix (x :: b) yss = map xcons yss         -- previously :: b was rejected</div><div dir="auto">>   where xcons ys = x : ys :: [b]                -- now can use b to annotate the rhs</div><div dir="auto"><br></div><div dir="auto">It seems to me that inline tyvar bindings/annotations like this is preferable to the `ScopedTypeVariables` explicit `foralls` on a standalone signature signalling some tyvar is being scoped over some declaration/term. See also similar comments in github PR  #119 'Resurrect PatternSignatures' (now withdrawn). There were quite a few opinions to the effect that `PatternSignatures` (but not full bore `ScopedTypeVariables`) should always have been part of Haskell; and perhaps that'd be ripe for inclusion in Haskell 2010.</div><div dir="auto"><br></div><div dir="auto">AntC</div>