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 |