Concrete syntax for pattern synonym type signatures

Dr. ERDI Gergo gergo at
Sun Nov 9 03:42:35 UTC 2014

On Sat, 8 Nov 2014, Richard Eisenberg wrote:

> On Nov 8, 2014, at 11:23 AM, "Dr. ERDI Gergo" <gergo at> wrote:
>> So we would need to add a way of parsing (T1, T2, ..., Tn; U1, U2, ..., 
>> Um) into a type, which would then require rejecting everywhere else 
>> where we really do mean a type... Sounds painful. Also painful: 
>> rewriting the whole context parsing code :/
> I actually think this wouldn't be all that hard. The same 
> parse-as-wrong-AST-node-and-then-fix-it-up-later trick happens in plenty 
> of places, patterns (parsed as expressions) being one of the biggest. 
> Harder than my proposal, probably, but I don't think it's terrible.

Right, but the issue in this case is if we add this artifical constructor 
to HsType just so we can fix it up into a pair of contexts, this 
constructor would permeate everything else that has to do with HsTypes; if 
nothing else, it'd need a `panic "foo: HsContextPair"` branch for all 
type-related renamer/typechecker functions.

Unless I'm missing some shortcut. I hope I do!


More information about the ghc-devs mailing list