
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I am trying to write a haskell compiler and i have stumbled upon 2 issues that i don't understand in the Haskell report 2010. Btw. these issues are also present in the 98 report. 1) first is this in section 5.1 Module Structure [1]. A module is defined like this. module → module modid [exports] where body | body body → { impdecls ; topdecls } | { impdecls } | { topdecls } You can't see it in this mail because there is no font but the curly braces { } are meant to match the tokens { } and are not meant as repetition. However, as I understand it, the layout parser would modify this code: module Foo where import Bar baz=baz to this code (which doesn't match): module Foo where { import Bar ; baz=baz } and not to this code (which would be required to match): module Foo where { { import Bar } ; { baz=baz } } So as i see the definition should state this instead: module → module modid [exports] where body | body body → { impdecls ; topdecls } | impdecls | topdecls 2) In the same section what is it supposed to mean if "module" consists of only a "body" and not "module modid [exports] where body". 3) In section 10.3 Layout [2] it is written. If a let, where, do, or of keyword is not followed by the lexeme {, the token {n} is inserted after the keyword, where n is the indentation of the next lexeme if there is one, or 0 if the end of file has been reached. Together with this rule L [] (m : ms) = } : L [] ms if m≠0 (Note 6) This results in an error if the program ends in a "where", ... Wouldn't it make more sense to put a {1} in case of EOF or just insert the tokens '{' and '}'. On the other hand if you really won't accept that why not simply say that it is an error. btw. GHC doesn't give an error. [1] http://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-990005.1 [2] http://www.haskell.org/onlinereport/haskell2010/haskellch10.html#x17-1780001... -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJPCdgeAAoJEDLsP+zrbatWIjgP/RLISOIz6xZRDso/mVn+xbwh eMPdeqmzJJYpVm+sDdjmoEIAsrwXtYKc9r8LrlUOugbtXFhYYPcSox7Te4DO+Cm+ X+b8b80UQu1nKNoUofDqAXSQb/n7f5zgmaIoF2uvFieuJTE709oZCmBdTgupVdyJ D16VqmKmqpskNepnQuh9rV7vwSPs4PjnsUQDpxjXDvh0tSdp9byBZPcMwEgQb172 FJAAryCuKFBE8FRG+ANlSw2h8fH7rkMLmkjabje5NKtLa2UMKvBlXYa2p0EZwcd2 /bj/2GTksWdsDmqFp3lQJgPk2uxp5reosTiTk5JQz56GcPOTK3wmL62qDeH3+tdS pX5ZD8HeX8RdkLjuFi0fjiJq3L4HEy+OqHbLWoStPPqfY9clueSUJ0g0Dfc4OukU 0naJlASxKr4ovHBiTinrLI6bTTeeMj9QCDGh5hU0x1hJ5f80iQQaKYpI8cq1DxQv CICBFibFnbJ0Zfzfuk0ZJZ8Db1dJUdEGSYZo/QCtpxXwTyKr4zEU6FYHprScRRX8 H6ZDnVE6ZbzDbaUqeQVBXvUGHF+2vTmDo1EZ80BFhDVHjifvV9eHslbF0XD+NjYY iRPsgDzACYsMxvYaBsRlXWwmwWD+EfNerdHZL6h9dBZICwSr0pu4SCp616BR2BpK IuO4MG/B5vAoCs9cb0lG =O6Wd -----END PGP SIGNATURE-----