<br><br>On Wednesday, March 30, 2016, Rustom Mody <<a href="mailto:rustompmody@gmail.com">rustompmody@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div>Ive been trying parsec<br></div>And I gather that the modules structures are heavily reorganized<br><br></div>eg <a href="https://kunigami.wordpress.com/2014/01/21/an-introduction-to-the-parsec-library/" target="_blank">https://kunigami.wordpress.com/2014/01/21/an-introduction-to-the-parsec-library/</a><br></div>starts with<br><br>import Data.Char (char)<br></div></div></div></div></div></div></div></blockquote><div><br></div><div>That's incorrect and has never been correct.  The parser you want is in Text.Parsec.Char. Data.Char is a standard Haskell module and has nothing to do with Parsec. </div><div><br></div><div>Unfortunately I can't recommend any particular tutorial. Mostly I thrashed about, reading this and that. The principles are best explained in the original papers, such as this one:</div><div><br></div><div><a href="http://research.microsoft.com/en-us/um/people/daan/download/papers/parsec-paper.pdf">http://research.microsoft.com/en-us/um/people/daan/download/papers/parsec-paper.pdf</a><br></div><div><br></div><div>But unfortunately the original papers are somewhat out of date too.</div><div> </div>