<div dir="ltr"><div><div><div><div><div><div><div><div><br></div>I'm writing a parser for polynomial equation (ex : 5 x ^2 + 3 x ^ 1 = 3 x ^ 2).<br><br></div>I'm using parsec to decompose my parser into smaller parts, and it works, but all my parser functions have the type :<br></div>parser :: Stream s m Char => ParsecT s u m <Type to Parse><br><br></div>Is there a way to factor out that boilerplate, in such a way that I could simply write a type like<br></div>parser :: Parser <Type to parse> <br>?<br><br></div>The farther I've been is : <br></div>type Parser s = ParsecT s () Identity<br></div>type St = Stream s Identity Char (using ConstraintKinds)<br><div>parser :: St s => Parser s <Type to Parse><br><br></div><div>But that still feels tedious to write every time... <br><br></div><div>I've tried to search the wiki and the internet in general, but did not find an answer to that particularly.<br><br></div><div>Thxs a lot if you have any hindsights.<br><br></div><div>Max Gautier<br></div></div>