[Haskell-cafe] Call for discussion: OverloadedLists extension
Simon Peyton-Jones
simonpj at microsoft.com
Tue Sep 25 10:01:06 CEST 2012
| Here at the University of Tübingen, I am co-supervising (together with
| Jeroen Weijers) a student project implementing the OverloadedLists
| extension for GHC. Achim Krause is the student who is working on the
| project. We took into consideration earlier discussions on this topic
| [1,2] before embarking on the project.
|
| Achim has worked on two approaches.
Your second approach is this:
| [x,y,z]
|
| as
|
| singleton x `mappend` singleton y `mappend` singleton z ;
This approach is not good for long literal lists, because you get tons of executable code where the user thought he was just defining a data structure. And long literal lists are an important use-case.
One other possibility is to use a variant of what GHC does for literal strings. Currently
"foo"
turns into
unpackCString "foo"#
where "foo"# is a statically allocate C string, and the "unpackCString" unpacks it lazily.
Maybe we could make a literal [a,b.c] turn into
unpack [a,b,c]#
where
[a,b,c]#
is a statically-allocated vector? See http://hackage.haskell.org/trac/ghc/ticket/5218, which is stalled awaiting brain cycles from someone.
I'm maxed out at the moment. I'd be very happy if you guys were able to make progress; I'm happy to advise. Open a ticket, start a wiki page, etc!
Simon
More information about the Haskell-Cafe
mailing list