Hi,<br><br>I don&#39;t see any mention here of the dimensional library (<a href="http://hackage.haskell.org/package/dimensional">http://hackage.haskell.org/package/dimensional</a>), or its type-family variant --- in order to be a viable proposal you should describe how you would improve on the approach taken there.<div>
<br></div><div>G<br><br><div class="gmail_quote">On Wed, Apr 4, 2012 at 1:38 PM, Nils Schweinsberg <span dir="ltr">&lt;<a href="mailto:ml@n-sch.de">ml@n-sch.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Haskell-Cafe &amp; GHC-users!<br>
<br>
I&#39;m looking to apply for the GSoC and since I&#39;ve worked on GHC before I&#39;d like to continue to do so. My proposal would be something that tempted me (as a physics student) for a while: Units for Haskell/GHC.<br>

<br>
This project has been suggested for a long time on the GHC wiki, and there is already a lot of work done for other languages like ML, F# etc[1]. I have tried to implement e.g. the unification algorithm from the &quot;Types for Units-of-Measure in F#&quot; talk[2] for an abstract syntax tree[3] and it was pretty much straight forward. As I see it, the project would consist of:<br>

<br>
 1.) Find appropriate rules/algorithms for unit analysis. Most (if not all?) of this should be covered in those papers/talks on [1].<br>
<br>
 2.) Applying the rules to the Haskell syntax tree used in GHC.<br>
<br>
I have approximately 3 years of experience with Haskell, I worked for the database research group[4] at the University of Tübingen (Germany) on the Database Supported Haskell[5] library. I&#39;ve done most of the coding for the monad comprehension[6] extension, which has been added to the latest GHC release version. I&#39;m already quite familiar with the GHC internals of the compiler/typechecker, and even though I&#39;d have to look up how exactly type interference etc. works in GHC (as I&#39;ve only *used* it, but never tried to understand/modify it) I&#39;m confident that the work on GHC itself should be doable in the given timeframe.<br>

<br>
So my questions would be:<br>
<br>
Do you think this is a appropriate GSoC project?<br>
What should I include in the application/project proposal?<br>
Anything else? Opinions, suggestions?<br>
<br>
I realize that I&#39;m kind of late and probably should have written this email a long time ago. But there are still 2 days left for the student application and hopefully I&#39;ll get some good feedback by then.<br>
<br>
<br>
<br>
- Nils<br>
<br>
<br>
<br>
[1]: <a href="http://research.microsoft.com/en-us/um/people/akenn/units/index.html" target="_blank">http://research.microsoft.com/<u></u>en-us/um/people/akenn/units/<u></u>index.html</a><br>
[2]: <a href="http://research.microsoft.com/en-us/um/people/akenn/units/MLWorkshop2008.pdf" target="_blank">http://research.microsoft.com/<u></u>en-us/um/people/akenn/units/<u></u>MLWorkshop2008.pdf</a><br>
[3]: <a href="https://github.com/mcmaniac/units/blob/master/src/Unification.hs" target="_blank">https://github.com/mcmaniac/<u></u>units/blob/master/src/<u></u>Unification.hs</a><br>
[4]: <a href="http://db.inf.uni-tuebingen.de/team" target="_blank">http://db.inf.uni-tuebingen.<u></u>de/team</a><br>
[5]: <a href="http://hackage.haskell.org/package/DSH" target="_blank">http://hackage.haskell.org/<u></u>package/DSH</a><br>
[6]: <a href="http://db.inf.uni-tuebingen.de/files/giorgidze/haskell2011.pdf" target="_blank">http://db.inf.uni-tuebingen.<u></u>de/files/giorgidze/<u></u>haskell2011.pdf</a><br>
<br>
______________________________<u></u>_________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Gregory Collins &lt;<a href="mailto:greg@gregorycollins.net" target="_blank">greg@gregorycollins.net</a>&gt;<br>
</div>