
I've completed most of the edits to the Haskell 98 report for Haskell 2010, modulo the changes to the libraries that we still have to resolve. I cleaned up various other things I discovered along the way, and tidied up the typesetting. I've also made a much nicer HTML rendering of the report using TeX4ht, which means we can ditch the old 1500 lines of hacked up Haskell code which used to do the HTML conversion before. You can see the draft report here, in PDF and online HTML respectively: http://www.haskell.org/~simonmar/haskell-2010-draft-report.pdf http://www.haskell.org/~simonmar/haskell-2010-draft-report/haskell.html In the PDF you'll notice that the bits that changed in Haskell 2010 relative to Haskell 98 are purple (except for the FFI chapter). Unfortunately I haven't yet managed to make this work in the HTML version, but it ought to be possible. I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking. The source repo (darcs) is here: http://darcs.haskell.org/haskell2010-report Cheers, Simon

I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
"Modified versions of this Report may also be copied and distributed for any purpose, provided that the modified version is clearly presented as such, and that it does not claim to be a definition of the language Haskell 98." Well at least you are complying. :-) In the Preface, my affiliation should be "University of York", the one in England, not "York University", the one in Canada. Also in the Preface, I would expect a citation for the published version of the Haskell'98 book, together with its appearance in the Bibliography. I did not immediately spot any other obvious flaws. Regards, Malcolm

I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the HTML version, there are a few cases where section numbers are missing from the subsection headers in the TOC. I see at least 11 and 22. In the PDF, is there any possibility of formatting the entries in the TOC as links to the text? Regards, Sean

On 30/04/2010 17:58, Sean Leather wrote:
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the HTML version, there are a few cases where section numbers are missing from the subsection headers in the TOC. I see at least 11 and 22.
I wish I knew why this happened. It always seems to be chapters 11 and 22.
In the PDF, is there any possibility of formatting the entries in the TOC as links to the text?
Good idea - done. Cheers, Simon

On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF: p10: Typo "Februrary" p10: The new (purple) bullet points do not end in full stops, while the old (black) ones do p11: "Audrey Tang" is not alphabetically placed p11: Missing linebreak after "John Goerzen" p11: Missing vowel in "Andres Lh" p11: Alphabetical order breaks down for surnames beginning 'M'/'N' p12: Aerts/Aberg out of order p12: Blott/Blenko out of order p12: Wolfram Kahl is listed twice p12: Ralf Hinze is in both the "committee" and the "other" list p12: Simon Thompson is in both the "committee" and the "other" list Thanks Ian

On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I've completed most of the edits to the Haskell 98 report for Haskell 2010, modulo the changes to the libraries that we still have to resolve.
I cleaned up various other things I discovered along the way, and tidied up the typesetting. I've also made a much nicer HTML rendering of the report using TeX4ht, which means we can ditch the old 1500 lines of hacked up Haskell code which used to do the HTML conversion before.
You can see the draft report here, in PDF and online HTML respectively:
http://www.haskell.org/~simonmar/haskell-2010-draft-report.pdf http://www.haskell.org/~simonmar/haskell-2010-draft-report/haskell.html
In the PDF you'll notice that the bits that changed in Haskell 2010 relative to Haskell 98 are purple (except for the FFI chapter). Unfortunately I haven't yet managed to make this work in the HTML version, but it ought to be possible.
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF: p37: "guard --> pat <- infixexp" Is that really meant to be infixexp, not exp? GHC accepts: foo | True <- True :: Bool = 'a' p37: Hmm, likewise "guard --> infixexp". GHC accepts foo | True :: Bool = 'a' but hugs doesn't (unexpected `::'). So I guess these are both just GHC bugs, although I wonder why the report isn't more liberal. p42: The negative literal alternative in pat is redundant p47: I'm not sure I see the reason for this change. It seems to just make it more complicated. If the change is made, should say y is a new variable. I don't know if the colouring is important, but there's a black "y" that should be purple, and two purple "_ ->" that should be black, p47: Case (h) is alone in ending in a full stop p48: Case s, again I don't see the point of the y binding Thanks Ian

On 01/05/2010 13:18, Ian Lynagh wrote:
On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I've completed most of the edits to the Haskell 98 report for Haskell 2010, modulo the changes to the libraries that we still have to resolve.
I cleaned up various other things I discovered along the way, and tidied up the typesetting. I've also made a much nicer HTML rendering of the report using TeX4ht, which means we can ditch the old 1500 lines of hacked up Haskell code which used to do the HTML conversion before.
You can see the draft report here, in PDF and online HTML respectively:
http://www.haskell.org/~simonmar/haskell-2010-draft-report.pdf http://www.haskell.org/~simonmar/haskell-2010-draft-report/haskell.html
In the PDF you'll notice that the bits that changed in Haskell 2010 relative to Haskell 98 are purple (except for the FFI chapter). Unfortunately I haven't yet managed to make this work in the HTML version, but it ought to be possible.
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF:
p37: "guard --> pat<- infixexp" Is that really meant to be infixexp, not exp? GHC accepts: foo | True<- True :: Bool = 'a'
p37: Hmm, likewise "guard --> infixexp". GHC accepts foo | True :: Bool = 'a' but hugs doesn't (unexpected `::'). So I guess these are both just GHC bugs, although I wonder why the report isn't more liberal.
See the bottom of 3.13: " A note about parsing. The expression case x of { (a,_) | let b = not a in b :: Bool -> a } is tricky to parse correctly. It has a single unambiguous parse, namely case x of { (a,_) | (let b = not a in b :: Bool) -> a } However, the phrase Bool -> a is syntactically valid as a type, and parsers with limited lookahead may incorrectly commit to this choice, and hence reject the program. Programmers are advised, therefore, to avoid guards that end with a type signature — indeed that is why a guard contains an infixexp not an exp. " In Haskell 98 we had gd -> | exp^0 where exp^0 is now called infixexp, so I kept things as they were. Arguably using infixexp here is only a partial fix for the parsing problem described above, and so it might be better not to try to fix the problem at all. Either way though, GHC will be wrong.
p42: The negative literal alternative in pat is redundant
well spotted, thanks.
p47: I'm not sure I see the reason for this change. It seems to just make it more complicated. If the change is made, should say y is a new variable. I don't know if the colouring is important, but there's a black "y" that should be purple, and two purple "_ ->" that should be black,
Agreed, I've reverted that.
p47: Case (h) is alone in ending in a full stop
p48: Case s, again I don't see the point of the y binding
Fixed. Thanks! Simon

On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF: p129-137: A "program" can only contain a "modid" as part of a "qvarid", ..., "qconsym", but e.g. a "module" needs a bare "modid". May be best to defer fixing this, and tidy up the syntax definition in H2011. p152: There's a huge amount of whitespace between "dclass" and "inst" p153: Same "guard --> pat <- infixexp" comment as on p37 (GHC bug?). p153: Same "guard --> infixexp" comment as on p37 (GHC bug?). p153: RHS of "gdrhs" production should be purple (as on p66) p154: As on p42, the negative literal alternative in pat is redundant p156: The argument to resolve doesn't have to strictly alternate, e.g. "id $ - three". p156: The program needs an "import Control.Monad" p156: The program should derive Show for everything p157: In one case (in the penultimate paragraph) "-" is quoted and short, while earlier uses are bare and long. p159: Is this legal?: {-# LANGUAGE EmptyDataDecls #-} data Foo deriving () GHC accepts it, but hugs says (unexpected keyword "deriving") Thanks Ian

On 02/05/2010 13:57, Ian Lynagh wrote:
On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF:
p129-137: A "program" can only contain a "modid" as part of a "qvarid", ..., "qconsym", but e.g. a "module" needs a bare "modid". May be best to defer fixing this, and tidy up the syntax definition in H2011.
p152: There's a huge amount of whitespace between "dclass" and "inst"
p153: Same "guard --> pat<- infixexp" comment as on p37 (GHC bug?). p153: Same "guard --> infixexp" comment as on p37 (GHC bug?).
p153: RHS of "gdrhs" production should be purple (as on p66)
p154: As on p42, the negative literal alternative in pat is redundant
p156: The argument to resolve doesn't have to strictly alternate, e.g. "id $ - three".
p156: The program needs an "import Control.Monad" p156: The program should derive Show for everything
p157: In one case (in the penultimate paragraph) "-" is quoted and short, while earlier uses are bare and long.
All fixed, thanks.
p159: Is this legal?: {-# LANGUAGE EmptyDataDecls #-} data Foo deriving () GHC accepts it, but hugs says (unexpected keyword "deriving")
Yes, it's legal according to the grammar. Cheers, Simon

On Fri, Apr 30, 2010 at 05:05:17PM +0100, Simon Marlow wrote:
I'd appreciate a few more eyes over this, in particular look out for messed up typesetting as there could still be a few bugs lurking.
In the PDF: p166: Does anything support these?: DoAndIfThenElse, HierarchicalModules, FixityResolution, LineCommentSyntax, LanguagePragma Should "RelaxedDependencyAnalysis" be "RelaxedPolyRec"? "EmptyDataDeclarations" should be "EmptyDataDecls". Thanks Ian
participants (4)
-
Ian Lynagh
-
Malcolm Wallace
-
Sean Leather
-
Simon Marlow