Using -fext-core without a Main function

Max Bolingbroke batterseapower at hotmail.com
Tue Apr 13 12:48:50 EDT 2010


The flag -fext-core is a red herring. GHC assumes any module with no
"module" declaration is actually called Main and hence insists on a
main declaration.

""""
mbolingbroke at Perihelion ~/tmp
$ ghc -c Hal.hs

Hal.hs:1:0: The function `main' is not defined in module `Main'
"""

Compile this instead:

"""
module Hal where
addOne x = x + 1
"""

Cheers,
Max

On 13 April 2010 17:38, Hal Daume III <hal at cs.utah.edu> wrote:
> If I have a file 'Foo.hs' that contains one line 'addOne x = x + 1', I want
> to run something like:
>
>  ghc -c -fext-core Foo.hs
>
> to get the core version of this file.
>
> Unfortunately, when I do that, it complains that Main doesn't have a
> function main.  And it doesn't produce the .hcr file.
>
> I tried adding -no-hs-main but that doesn't help.
>
> I can add 'main = undefined' to Foo.hs, but then the core file doesn't
> contain the declaration of addOne because it's not used.
>
> Any suggestions?
>
> Thanks!
>
>  -h
>
> --
>  Hal Daume III --- me AT hal3 DOT name  |  http://www DOT hal3 DOT name
>  "Arrest this man, he talks in maths."  |  http://nlpers.blogspot.com
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
>


More information about the Glasgow-haskell-users mailing list