Hi Tim,
DDC doesn't aim for Haskell 98 compliance - its really a superset of a subset of it - but I've followed Haskell syntax and philosophy where ever possible. The compiler is written in Haskell and I want DDC to support as much of it as possible to make its eventual boot-strapping easier. There's much more common ground between Disciple and Haskell than say, ML and O'Caml, or Haskell and Clean.

Most of the expression syntax is there eg: function binding, lambdas, let, where, pattern matching, case expressions, pattern guards, data type definitions, class and instance definitions etc etc.

For the alpha version at least, the main deviations are:
 - dictionary passing is not finished.
- you'll need to put region annots on recursive data type defs as the elaboration isn't quite finished.
 - it uses strict evaluation as default
 - field projections are different
 - no monadic desugaring in do notation.
 - no irrefutable patterns yet.

The rest is all Haskell 98 (minus all the effect typing extensions, of course!).

For the alpha2 release I'm hoping that most straight-up Haskell 98 programs will compile with it after some cosmetic modifications: mostly adding the suspension operator where appropriate, and using the new field projection syntax.

Ben.


Can you elaborate on "a significant number of Haskell programs"? Do
you expect that DDC can compile any Haskell (98?) program except some
weird corner cases, or are you aware of a particular class of Haskell
programs it currently can't compile?

(I'm asking in order to find out whether DDC would potentially be
useful for my work, not so as to question whether it should be on
haskell.org (I don't care about that :-))

Cheers,
Tim

--
Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in doubt
"It's easy to consider women more emotional than men when you don't
consider rage to be an emotion." -- Brenda Fine

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to