GHCIs current behavior seems inconsistent with this, why is foo accessible and why don't I get an unused warning like i do if i have an explicit `module Main (main) where`?
``` $ cat Main.hs main :: IO () main = pure () foo :: Int foo = 1 $ ghci Main.hs -Wall GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help Loaded GHCi configuration from /Users/adam.bergmark/.ghci [1 of 1] Compiling Main ( Main.hs, interpreted ) Ok, modules loaded: Main. λ foo 1 ``` On Tue, 16 May 2017 at 19:00 José Manuel Calderón Trilla <j...@jmct.cc> wrote: > Agreed, this sounds sensible. > > Can anyone think of any unintended consequences? > > -Jose > > On Tue, May 16, 2017, at 09:50 AM, Iavor Diatchki wrote: > > That seems fairly reasonable to me. > > -Iavor > > On Tue, May 16, 2017 at 7:18 AM, Joachim Breitner < > m...@joachim-breitner.de> wrote: > > 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 > m...@joachim-breitner.de • https://www.joachim-breitner.de/ > XMPP: nome...@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F > Debian Developer: nome...@debian.org > _______________________________________________ > Haskell-prime mailing list > Haskell-prime@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime > > *_______________________________________________* > Haskell-prime mailing list > Haskell-prime@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime > > > _______________________________________________ > Haskell-prime mailing list > Haskell-prime@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime >
_______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime