In this post I am *not* asking for new features in D, I just try to give few answers :-) I think most of those things are not fit for D, they require a different language, a different compiler, different programmers, and probably a different compiler writer too :-) (I think in D for example list comphrensions fit better).
The problem is that I am not an expert on such things, so what I say is not fully reliable (and another smaller problem is that I am not always sure what retard meant). If you don't understand or you don't agree with something I write here please ask. Walter Bright: >>- Built-in variants (real sum types)<< >std.variant works fine. Don't know how having them be built-in would improve >things.< I think retard here meant something different from D variant type. I think he meant something like the type int|float or int|float|double. The type system then knows that a variable of such type can contain only an int or a float, and nothing else. So you can think of it as a tagged union. But it's not just a C tagged union, functional languages are able to manage such int|float type very well, for example accepting in the code only operators that are allowed on both types. >>- Fusion optimizations (e.g. list and stream fusion)<< >Andrei demonstrated how to do this neatly with ranges.< I think Andrei was showing something different. You can think of Fusion optimization as a compiler optimization, done by good compilers of lazy functional languages :-) It's useful to remove some useless operations, and turn a certain not effient functional algorithm into something that runs fast. You can find something here: http://stackoverflow.com/questions/578063/what-is-haskells-stream-fusion (In my opinion D language is far from being in need of this optimization.) >>- Algrebraic data types<< >std.variant covers this.< I am sorry, but std.variant has nothing to do with Algrebraic data types :-) (The words retard has used come from computer science still, but it's another dialect, of the functional programmers. So even things that sound similar can be quite different things). I have shown Algrebraic data types a little on this newsgroup once in the past. This page contains some information: http://en.wikipedia.org/wiki/Algebraic_data_type >>- Type classes<< >Don't know what this is.< This page gives some basic information: http://en.wikipedia.org/wiki/Type_classes While you read that, keep in mind the difference between a Nominative type system like the D one, and a structural one like the one of Haskell: http://en.wikipedia.org/wiki/Nominative_type_system >>- Higher kinded types<< >Don't know what that is.< This is quickly going into a mess. There are very few languages with those, maybe only Haskell and Scala. You can find some information here, but it's not easy read: http://en.wikipedia.org/wiki/Kind_%28type_theory%29 http://www.cs.kuleuven.be/~adriaan/files/higher.pdf I'll need few more years to start to start to digest some of this stuff. Bye, bearophile