[Haskell-beginners] Cabal and .chs modules dependencies

John Obbele john.obbele at gmail.com
Fri Sep 10 10:10:46 EDT 2010


Hi everyone !

I'm stuck with a cabal quirk concerning modules build with c2hs:
the modules declared in {exposed,others}-modules are build
sequentially *and* the exposed modules are processed first,
followed by the "other-modules".

So if I have a Foobar.Quux.MyModule which depends of
Foobar.MyInternal.Foo1(.chs) and write in *.cabal:

>   library
>     Other-Modules:     Foobar.MyInternal.Foo0
>                        Foobar.MyInternal.Foo1
>
>     Exposed-Modules:   Foobar.Quux.MyModule

or 

>   library
>     Other-Modules:     Foobar.MyInternal.Foo0
>
>     Exposed-Modules:   Foobar.Quux.MyModule
>                        Foobar.MyInternal.Foo1

I get the following error:

    bash $ cabal clean && cabal configure && cabal build
    cabal clean                                              
    cleaning...                                              
    cabal configure
    Resolving dependencies...                                
    Configuring foobar-0.0.0.1
    cabal build                                              
    Preprocessing library foobar-0.0.0.1...                  
    c2hs: Foobar.MyInternal.Foo1.chi not found in:    
    dist/build                                               

The only solution I have for now is to write:

>   library
>     Exposed-Modules:   Foobar.MyInternal.Foo1
>                        Foobar.Quux.MyModule
>
>     Other-Modules:     Foobar.MyInternal.Foo0

... which unfortunately exposes "Foobar.MyInternal.Foo1". Does
anyone know how *not* to expose Foobar.MyInternal.* ?

(by the way I am using those versions:
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library 
C->Haskell Compiler, version 0.16.2 Crystal Seed, 24 Jan 2009
  build platform is "i386-linux" <1, True, True, 1>)

regards,
/John


More information about the Beginners mailing list