Scoped type variables in pattern synonyms
Unsure of pattern synonym scoping rules.
I want to be able to refer to a type in the signature (assuming
symbol from #11349):
symbol :: forall s. KnownSymbol s => String symbol = symbolVal @s Proxy -- Not in scope: type variable ‘s’ -- Not in scope: type variable ‘s’ pattern Symbol :: forall s. KnownSymbol s => String pattern Symbol <- ((== symbol @s) -> True) where Symbol = symbol @s
-- • Could not deduce (KnownSymbol n0) -- arising from a use of ‘symbolVal’ -- from the context: KnownSymbol s -- bound by the type signature for pattern synonym ‘Symbol’: -- String pattern Symbol :: forall s. KnownSymbol s => String pattern Symbol <- ((== symbolVal (Proxy :: Proxy s)) -> True)
but it (GHCi, version 8.1.20160102) says the type variable
s is not in scope. Is this intentional?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information