| I'm replying to a rather old thread here, about unboxing in functions. Duncan
| had a continuation monad which passed around some data type that would be nice
| to unbox. You discussed strictness annotations in function types as a
potential
| solution. I have a different tack on the problem which seems potentially
| useful. I've experimented with doing local defunctionalization on the module.
Interesting suggestion, Josef. In general, local defunctionalisation would be
an intersting transformation to try. I'm not sure how well it would scale: the
larger the scope, the bigger the more distinct functions and the bigger the
dispatch table.
Also your transformation is semantically transparent (no effect) whereas Duncan
is prepared to add ! annotations that really make things stricter, just as !
annotations in data type decls do today. So presumably he will get further
than you will, because he is making more assumptions.
Meanwhile, I've thought a bit more about Duncan's idea. One attractive aspect
is that you can regard it as a direct extension of Haskell's existing mechanism
of ! on data types, making the {-# UNPACK #-} pragma look inside function types
as well as looking inside data types. I like that. It makes it sounds less ad
hoc than I previously thought. I'll open a Trac ticket for this thread,
http://hackage.haskell.org/trac/ghc/ticket/1349
Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users