
Am Donnerstag, den 10.08.2017, 19:39 -0400 schrieb Ben Gamari:
On August 10, 2017 7:16:04 PM EDT, Wolfgang Jeltsch wrote:
Consider, for example, the following definition:
data IsListType a where
IsListType :: IsListType [b]
For each type T, we can match a value of type IsListType T against the pattern IsListType. If this succeeds, we know that T is a list type, but we do not have access to the respective element type.
Is there a way to determine existentially quantified type variables like the b in the above example?
Note that the feature described in #11350 will provide a quite direct way to accomplish this by allowing type applications in pattern matches.
Yes, this feature seems to provide what I need. In my particular use case, it allows for pretty clear code. Is there also a solution that does not involve using this (unimplemented) feature? All the best, Wolfgang