... | ... | @@ -152,7 +152,7 @@ Or at least the beginning of it, more extension points might be needed for phase |
|
|
|
|
|
Let's start with a specific example `GhcPass`.
|
|
|
This is (modulo newtypes) a sum type, with a variant for each stage.
|
|
|
This allows singleton-related machinery like `IsPass` in order to *exhaustively* dispatch on each stage within a function.
|
|
|
This allows singleton-related machinery like `IsPass` in order to *exhaustively* dispatch on each stage within a function. (See `Note [IsPass]`.)
|
|
|
|
|
|
The alternative method is used with `CollectPass`, a class for collecting the bound variables of patterns.
|
|
|
It is needed because Haddock uses it with a non-`GhcPass` type for its own TTG type family instances.
|
... | ... | |