Prelude for type-level programming

2012-04-20 Thread Etienne Laurin
Hello, To experiment with some of GHC's new features in HEAD, I have started ported part of the Prelude from values and functions to types and constraints. For example: comparing lists. instance Compare '[] '[] EQ instance Compare '[] (x ': xs) LT instance Compare (x ': xs) '[] GT instance (

Re: "containing" memory-consuming computations

2012-04-20 Thread Edward Z. Yang
Excerpts from Brandon Allbery's message of Fri Apr 20 19:31:54 -0400 2012: > > So, it would be pretty interesting if we could have an ST s style > > mechanism, where the data structure is not allowed to escape. > > But I wonder if this would be too cumbersome for anyone to use. > > Isn't this what

Re: "containing" memory-consuming computations

2012-04-20 Thread Brandon Allbery
On Fri, Apr 20, 2012 at 12:56, Edward Z. Yang wrote: > So, it would be pretty interesting if we could have an ST s style > mechanism, where the data structure is not allowed to escape. > But I wonder if this would be too cumbersome for anyone to use. > Isn't this what monadic regions are for? -

Build failure with HEAD

2012-04-20 Thread Austin Seipp
Hi, Building GHC HEAD (git HEAD SHA1 = 88f476b98709731d997ab57612cce4753cb65a0a) this morning, I've encountered 2 build failures that seem to be a result of some recent changes in the past day or two. If I build a clean repository with `make -j13` on my 12 core machine, I get: --

Re: "containing" memory-consuming computations

2012-04-20 Thread Edward Z. Yang
So, it would be pretty interesting if we could have an ST s style mechanism, where the data structure is not allowed to escape. But I wonder if this would be too cumbersome for anyone to use. Edward Excerpts from Simon Marlow's message of Fri Apr 20 06:07:20 -0400 2012: > On 19/04/2012 11:45, Her

Re: "containing" memory-consuming computations

2012-04-20 Thread Simon Marlow
On 19/04/2012 11:45, Herbert Valerio Riedel wrote: > For the time-dimension, I'm already using functions such as > System.Timeout.timeout which I can use to make sure that even a (forced) > pure computation doesn't require (significantly) more wall-clock time > than I expect it to. Note that tim