[Haskell-cafe] Haskell.org GSoC

Sterling Clover s.clover at gmail.com
Thu Feb 19 23:05:46 EST 2009

On Feb 18, 2009, at 4:43 AM, Max Bolingbroke wrote:

> 2009/2/18 Sterling Clover <s.clover at gmail.com>:
>> The punchline: With GHC plugins, it should be possible, and  
>> reasonable, to
>> add a proper unit system for Haskell.
> Alas, GHC plugins cannot change the type system - only meddle with the
> compilation strategy or analyse the code and suchlike. I'm working
> with Simon Peyton Jones to get plugins integrated fully into GHC
> (parts of it have been commited already) but we're both busy and so
> progress is slow. I don't think any GSoC projects should take a
> dependency on it being both integrated into GHC and stable in time for
> the summer.

Thanks for the update on plugins! I look forward to trying them out  
from the GHC mainline at some point. I don't think that units as I  
envision them would need to mess with the type system directly, but  
could be implemented simply as a static analysis step, such as you  
describe. Units really do something quite different from standard  
types, and unit-correctness seems orthogonal to type correctness. A  
simple plugin would, e.g., allow unit annotations as distinct from  
type annotations (although, with an appropriate preprocessor step,  
they could, with cleverness, be written jointly), and simply track  
unit usage throughout the code to ensure correctness. It would, I  
assume, only need to operate on things which belonged to the Num  
typeclass to begin with, and assume that all unannotated numbers were  
scalars. Even lacking any sophisticated features, I would find this  
very useful, and certainly easier to envision than a more general  
extension to the type system that made unit tracking feasible, but  
yet, somehow, didn't veer fully into either simulated or actual  
dependent typing.

So I guess I'll just keep this idea in mind and pitch it for next  
year's GSoC. :-)


More information about the Haskell-Cafe mailing list