[Haskell] Re: Boxing (Day) Question

Ashley Yakeley ashley at semantic.org
Wed Dec 28 15:38:13 EST 2005

Taral wrote:
> Just a strange thought, but what about...
> foo :: x# -> ...
> =>
> ... foo (void *x, ...) { ... }
> Just because it's unboxed doesn't mean it isn't in memory...

Then you have to worry about garbage collection. That's OK, but that 
would be a separate kind, pointers to unboxed values that the garbage 
collector can reclaim. But we might also want literals.

The idea is to do C in Haskell, but with better typing. We separate out 
the storage aspects of C types as kinds, while leaving the semantics as 
types. One could add various kinds of "polykindism", which would mostly 
end up as compile-time overloading (or inlined) similar to C++ 
templates. For instance:

   (#,#) :: #m -> #n -> #m+n

I'm not really sure how much demand there is for it, mind, given the 
possible degree of complexity involved in doing it right.

Ashley Yakeley

More information about the Haskell mailing list