<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-GB link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Brian<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Great! <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>You might like to consider using GHC as a library<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>                <a
href="http://haskell.org/haskellwiki/GHC/As_a_library">http://haskell.org/haskellwiki/GHC/As_a_library</a><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The advantage is that you just “import GHC” and then you can
parse all of Haskell (including GHC’s extensions).  Then you can rename it to
resolve lexical scopes, typecheck, and so on.  It will certainly deal with all
of Darcs… because GHC compiles Darcs.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>It’s all supposed to be a good basis for tools that consume and
analyse Haskell programs, which is exactly what you propose to do.  Example,
there’s a summer-of-code project to use it for Haddock.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>That said, the API is really just what we needed to build GHC
itself.  It needs a serious design effort.  One of the things that would motivate
such an effort would be “customers” saying “I needed to do X with the API and
it was inconvenient/impossible”.  Still, it does work, today.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Simon<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>

<div>

<div style='border:none;border-top:solid #91C0FF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=EN-US style='font-size:9.0pt;font-family:"Segoe UI","sans-serif"'>From:</span></b><span
lang=EN-US style='font-size:9.0pt;font-family:"Segoe UI","sans-serif"'>
haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] <b>On
Behalf Of </b>Brian Smith<br>
<b>Sent:</b> 17 August 2006 17:01<br>
<b>To:</b> haskell-cafe@haskell.org<br>
<b>Subject:</b> [Haskell-cafe] Description of Haskell extensions used by
FPTOOLS<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Is there any design document for the FPTOOLS libraries or
some description of language features that are (allowed to be) used in them?<br>
<br>
I am going to be taking some significant time off from my normal jobs in the
upcoming months. During part of that time, I would like to do some work to
improve the Haskell toolchain. This involves creating or improving tools that
parse and analyze Haskell code. My goal is to have these tools support enough
of Haskell to be able to handle at least the most important libraries used by
Haskell programmers. In particular, this includes all or most of the libraries
in FPTOOLS. Plus, I want these tools to operate on Darcs as it is an obvious
poster-child for Haskell. Thus, I need to support Haskell 98 plus all the
extensions being used in Darcs and FPTOOLS as of approx. March, 2007 (as I
intened to start working again at that time). <br>
<br>
It would be very nice if there was some document that described &quot;Haskell
98 plus all the extensions being used in Darcs and FPTOOLS as of March,
2007.&quot; Besides being useful to me, it would be a useful guide for
potential contributors to FPTOOLS. <br>
<br>
Regards,<br>
Brian<o:p></o:p></p>

</div>

</div>

</body>

</html>