Hi, staying in the realm of the explicit and pragmatic, various libraries in Haskell do provide safe&explicit region/alloca/stack allocation actions, e.g., Foreign.Marshal.Alloc.allocaBytes :: Int -> (Ptr a -> IO b) -> IO b with the promise that the pointer doesn't escape here (you could constrain this using the type system, if you so wish..) I don't know if the GHC RTS still(?) provides hooks for allocating "alloca" objects specially. There's been some work on monadic regions too; worth looking at. hth --sigbjorn On 8/4/2009 15:49, Simon Marlow wrote:
On 04/08/2009 13:33, Sam Martin wrote:
Sounds like region inference to me. (https://secure.wikimedia.org/wikipedia/en/wiki/Region_inference)
Thanks, yes, that's exactly what I had in mind.
Is anything like this is done in GHC?
Not at the moment, no.
Bear in mind that with generational GC, allocating memory that quickly becomes garbage is quite cheap.
Cheers, Simon