Default module header `module Main where`

Joachim Breitner mail at joachim-breitner.de
Tue May 16 14:18:51 UTC 2017


Hi,

a very small proposal to be considered for Haskell':

Currently, the report states

    An abbreviated form of module, consisting only of the module body,
    is permitted. If this is used, the header is assumed to be ‘module
    Main(main) where’.

I propose to change that to

    An abbreviated form of module, consisting only of the module body,
    is permitted. If this is used, the header is assumed to be ‘module
    Main where’.

The rationale is that a main-less main module is still useful, e.g.
when you are working a lot in GHCi, and offload a few extensions to a
separate file. Currently, tools like hdevtools will complain about a
missing main function when editing such a file.

It would also work better with GHC’s -main-is flag, and avoid problems
like the one described in https://ghc.haskell.org/trac/ghc/ticket/13704


I don’t see any downsides. When compiling to a binary, implementations
are still able to detect that a Main module is not imported by any
other module and only the main function is used, and optimize as if
only main were exported.

Greetings,
Joachim



-- 
Joachim “nomeata” Breitner
  mail at joachim-breitner.dehttps://www.joachim-breitner.de/
  XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
  Debian Developer: nomeata at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://mail.haskell.org/pipermail/haskell-prime/attachments/20170516/375022a6/attachment.sig>


More information about the Haskell-prime mailing list