`runghc` accepts invalid main program (for GHC 8.8.1)
module Main () where main = putStrLn "The impossible happened"
which according to the Haskell Report does not constitute a valid Haskell Program (as it doesn't export the
main entry point)
Compiling this with
ghc --make will rightly reject it with
Main.hs:1:1: error: The IO action ‘main’ is not exported by module ‘Main’ | 1 | module Main () where main = putStrLn "The impossible happened" | ^
runghc Main.hs (starting with GHC 8.8.1) will happily run this invalid program:
$ runghc Main.hs The impossible happened
This inconsistent behaviour has lead to less informed people assuming such a program might be actually "valid" Haskell.