inside the GHC code generator
lemmih at gmail.com
Fri Feb 24 12:55:37 EST 2006
On 2/24/06, Bulat Ziganshin <bulat.ziganshin at gmail.com> wrote:
> Hello Lemmih,
> Friday, February 24, 2006, 1:15:51 PM, you wrote:
> >> clean differs from Haskell in support of unique types and strictness
> >> annotations. the last is slowly migrates into GHC in form of shebang
> >> patters, but i think that it is a half-solution. i mentioned in
> >> original letter my proposals to add strictness annotations to
> >> function types declarations and to declare strict datastructures, such
> >> as "![Int]"
> L> As I've understood it, Clean's strictness annotations are a bit of a
> L> hack which only works on certain built-in types. Am I mistaking here?
> i don't know Clean very well, although i've seen rumors that it
> supports strict datastructures. after all, this don't need changes in
> language itself, it's just a syntax sugar:
> data [a] =  | a:[a]
> x :: ![Int]
> translates to the
> data StrictList a = Nil | Cons a !(StrictList a)
> x :: !(StrictList a)
Let's try this:
x :: ![Int] -> Int
It would translate to something like this:
mkStrictList :: [a] -> StrictList a
x = xStrict . mkStrictList
xStrict = ...
Wouldn't it be very expensive to strictify the list?
More information about the Glasgow-haskell-users