Discrepancy in type synonym definition and usage
Minor consistency issue, the following compiles fine (note parentheses):
type Alg f a = f a -> a
initial :: Alg(f) a
initial = undefined
But changing the definition to mirror its use:
type Alg(f) a = f a -> a
initial :: Alg(f) a
initial = undefined
and it fails with:
Unexpected type ‘f’
In the type declaration for ‘Alg’
A type declaration should have form
type Alg a b c = ...
Failed, modules loaded: none.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.8.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | lowest |
| Resolution | Unresolved |
| Component | Compiler (Parser) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |