Greetings to all Forum users,
Yesterday i tried to install a Haskell-module via cabal, in order to get aquainted with the installation of modules in Haskell. I had to install cabal first.

My System: Windows 7
Haskell-Compiler Version: GHC 7.0.2 (Link http://www.haskell.org/ghc/download)
Cabal: http://haskell.org/cabal/download.html

I will describe the process step by step, hoping that you may specify my wrong doings during both cabal and the package installation with cabal.

The procedure:
1. Installed Haskell Compiler GHC 7.0.2
------> Starting GHCi it from win 7 start menu, gives following output in a DOS-window:

.................................................................
. GHCi, version 7.0.2: [url]http://www.haskell.org/ghc/[/url]  :? for help .
. Loading package ghc-prim ... linking ... done.                .
. Loading package integer-gmp ... linking ... done.             .
. Loading package base ... linking ... done.                    .
. Loading package ffi-1.0 ... linking ... done.                 .
. Prelude>                                                      .
.................................................................

-------> So far so good: Every function inside the base packages is accessible and functions just the way its supposed to. Conclusion: The GHCi installation contains no erroneous steps.

2. Loaded cabal.exe from source (see introduction), copied it into C:\ghc\ghc-7.0.2\bin (which is added into %Path%-variables)
3. Loaded cabal-install-0.8.2.tar.gz as the site advises users that the packeage is needed for a clean install.
5. Opened new dos prompt window
6. typed "cabal update" (as advised by site), it did update the list and returned to user prompt mode
7. typed "cd C:\pathwhere\cabal-install-0.8.2.tar.gz" (switched into the directory where the cabal-install file is located)
8. typed "cabal install cabal-install-0.8.2", thereafter the installation started creating following output in the dos-box:

.......................................................................................
Resolving dependencies...
Downloading containers-0.3.0.0...
Configuring containers-0.3.0.0...
Preprocessing library containers-0.3.0.0...
Building containers-0.3.0.0...
[1 of 7] Compiling Data.Sequence    ( Data\Sequence.hs, dist\build\Data\Sequence.o )
[2 of 7] Compiling Data.Set         ( Data\Set.hs, dist\build\Data\Set.o )
[3 of 7] Compiling Data.Map         ( Data\Map.hs, dist\build\Data\Map.o )
[4 of 7] Compiling Data.IntSet      ( Data\IntSet.hs, dist\build\Data\IntSet.o )
[5 of 7] Compiling Data.IntMap      ( Data\IntMap.hs, dist\build\Data\IntMap.o )
[6 of 7] Compiling Data.Tree        ( Data\Tree.hs, dist\build\Data\Tree.o )
[7 of 7] Compiling Data.Graph       ( Data\Graph.hs, dist\build\Data\Graph.o )
cabal: ar is required but it could not be found.
Downloading filepath-1.1.0.4...
Configuring filepath-1.1.0.4...
Preprocessing library filepath-1.1.0.4...
Building filepath-1.1.0.4...
[1 of 3] Compiling System.FilePath.Posix ( System\FilePath\Posix.hs, dist\build\System\FilePath\Posix.o )
[2 of 3] Compiling System.FilePath.Windows ( System\FilePath\Windows.hs, dist\build\System\FilePath\Windows.o )
[3 of 3] Compiling System.FilePath  ( System\FilePath.hs, dist\build\System\FilePath.o )
cabal: ar is required but it could not be found.
Downloading parsec-2.1.0.1...
Configuring parsec-2.1.0.1...
Preprocessing library parsec-2.1.0.1...
Building parsec-2.1.0.1...
[ 1 of 10] Compiling Text.ParserCombinators.Parsec.Pos ( Text\ParserCombinators\Parsec\Pos.hs, dist\build\Text\ParserCom
binators\Parsec\Pos.o )
[ 2 of 10] Compiling Text.ParserCombinators.Parsec.Error ( Text\ParserCombinators\Parsec\Error.hs, dist\build\Text\Parse
rCombinators\Parsec\Error.o )
[ 3 of 10] Compiling Text.ParserCombinators.Parsec.Prim ( Text\ParserCombinators\Parsec\Prim.hs, dist\build\Text\ParserC
ombinators\Parsec\Prim.o )
[ 4 of 10] Compiling Text.ParserCombinators.Parsec.Char ( Text\ParserCombinators\Parsec\Char.hs, dist\build\Text\ParserC
ombinators\Parsec\Char.o )
[ 5 of 10] Compiling Text.ParserCombinators.Parsec.Combinator ( Text\ParserCombinators\Parsec\Combinator.hs, dist\build\
Text\ParserCombinators\Parsec\Combinator.o )
[ 6 of 10] Compiling Text.ParserCombinators.Parsec.Expr ( Text\ParserCombinators\Parsec\Expr.hs, dist\build\Text\ParserC
ombinators\Parsec\Expr.o )
[ 7 of 10] Compiling Text.ParserCombinators.Parsec ( Text\ParserCombinators\Parsec.hs, dist\build\Text\ParserCombinators
\Parsec.o )
[ 8 of 10] Compiling Text.ParserCombinators.Parsec.Token ( Text\ParserCombinators\Parsec\Token.hs, dist\build\Text\Parse
rCombinators\Parsec\Token.o )
[ 9 of 10] Compiling Text.ParserCombinators.Parsec.Perm ( Text\ParserCombinators\Parsec\Perm.hs, dist\build\Text\ParserC
ombinators\Parsec\Perm.o )
[10 of 10] Compiling Text.ParserCombinators.Parsec.Language ( Text\ParserCombinators\Parsec\Language.hs, dist\build\Text
\ParserCombinators\Parsec\Language.o )
cabal: ar is required but it could not be found.
Downloading time-1.1.4...
[1 of 1] Compiling Main             ( C:\Users\altug\AppData\Local\Temp\time-1.1.43528\time-1.1.4\Setup.hs, C:\Users\alt
ug\AppData\Local\Temp\time-1.1.43528\time-1.1.4\dist\setup\Main.o )

C:\Users\altug\AppData\Local\Temp\time-1.1.43528\time-1.1.4\Setup.hs:5:1:
    Warning: In the use of `runTests'
             (imported from Distribution.Simple, but defined in Distribution.Simple.UserHooks):
             Deprecated: "Please use the new testing interface instead!"
Linking C:\Users\altug\AppData\Local\Temp\time-1.1.43528\time-1.1.4\dist\setup\setup.exe ...
Configuring time-1.1.4...
Preprocessing library time-1.1.4...
Building time-1.1.4...
[ 1 of 24] Compiling Data.Time.Clock.CTimeval ( Data\Time\Clock\CTimeval.hs, dist\build\Data\Time\Clock\CTimeval.o )
[ 2 of 24] Compiling Data.Time.Clock.Scale ( Data\Time\Clock\Scale.hs, dist\build\Data\Time\Clock\Scale.o )
[ 3 of 24] Compiling Data.Time.Calendar.Private ( Data\Time\Calendar\Private.hs, dist\build\Data\Time\Calendar\Private.o
 )
[ 4 of 24] Compiling Data.Time.Calendar.MonthDay ( Data\Time\Calendar\MonthDay.hs, dist\build\Data\Time\Calendar\MonthDa
y.o )
[ 5 of 24] Compiling Data.Time.Calendar.Days ( Data\Time\Calendar\Days.hs, dist\build\Data\Time\Calendar\Days.o )
[ 6 of 24] Compiling Data.Time.Calendar.OrdinalDate ( Data\Time\Calendar\OrdinalDate.hs, dist\build\Data\Time\Calendar\O
rdinalDate.o )
[ 7 of 24] Compiling Data.Time.Calendar.Gregorian ( Data\Time\Calendar\Gregorian.hs, dist\build\Data\Time\Calendar\Grego
rian.o )
[ 8 of 24] Compiling Data.Time.Calendar.WeekDate ( Data\Time\Calendar\WeekDate.hs, dist\build\Data\Time\Calendar\WeekDat
e.o )
[ 9 of 24] Compiling Data.Time.Calendar.JulianYearDay ( Data\Time\Calendar\JulianYearDay.hs, dist\build\Data\Time\Calend
ar\JulianYearDay.o )
[10 of 24] Compiling Data.Time.Calendar.Julian ( Data\Time\Calendar\Julian.hs, dist\build\Data\Time\Calendar\Julian.o )
[11 of 24] Compiling Data.Time.Clock.UTC ( Data\Time\Clock\UTC.hs, dist\build\Data\Time\Clock\UTC.o )
[12 of 24] Compiling Data.Time.Clock.POSIX ( Data\Time\Clock\POSIX.hs, dist\build\Data\Time\Clock\POSIX.o )
[13 of 24] Compiling Data.Time.Clock.UTCDiff ( Data\Time\Clock\UTCDiff.hs, dist\build\Data\Time\Clock\UTCDiff.o )
[14 of 24] Compiling Data.Time.Clock  ( Data\Time\Clock.hs, dist\build\Data\Time\Clock.o )
[15 of 24] Compiling Data.Time.LocalTime.TimeZone ( Data\Time\LocalTime\TimeZone.hs, dist\build\Data\Time\LocalTime\Time
Zone.o )
[16 of 24] Compiling Data.Time.LocalTime.TimeOfDay ( Data\Time\LocalTime\TimeOfDay.hs, dist\build\Data\Time\LocalTime\Ti
meOfDay.o )
[17 of 24] Compiling Data.Time.Calendar ( Data\Time\Calendar.hs, dist\build\Data\Time\Calendar.o )
[18 of 24] Compiling Data.Time.Calendar.Easter ( Data\Time\Calendar\Easter.hs, dist\build\Data\Time\Calendar\Easter.o )
[19 of 24] Compiling Data.Time.LocalTime.LocalTime ( Data\Time\LocalTime\LocalTime.hs, dist\build\Data\Time\LocalTime\Lo
calTime.o )
[20 of 24] Compiling Data.Time.LocalTime ( Data\Time\LocalTime.hs, dist\build\Data\Time\LocalTime.o )
[21 of 24] Compiling Data.Time.Clock.TAI ( Data\Time\Clock\TAI.hs, dist\build\Data\Time\Clock\TAI.o )
[22 of 24] Compiling Data.Time.Format.Parse ( Data\Time\Format\Parse.hs, dist\build\Data\Time\Format\Parse.o )
[23 of 24] Compiling Data.Time.Format ( Data\Time\Format.hs, dist\build\Data\Time\Format.o )
[24 of 24] Compiling Data.Time        ( Data\Time.hs, dist\build\Data\Time.o )
Registering time-1.1.4...
Installing library in
C:\Users\altug\AppData\Roaming\cabal\time-1.1.4\ghc-7.0.2
Registering time-1.1.4...
Downloading random-1.0.0.3...
Configuring random-1.0.0.3...
Preprocessing library random-1.0.0.3...
Building random-1.0.0.3...
[1 of 1] Compiling System.Random    ( System\Random.hs, dist\build\System\Random.o )
cabal: ar is required but it could not be found.
Downloading transformers-0.2.2.0...
Configuring transformers-0.2.2.0...
Preprocessing library transformers-0.2.2.0...
Building transformers-0.2.2.0...
[ 1 of 21] Compiling Data.Functor.Product ( Data\Functor\Product.hs, dist\build\Data\Functor\Product.o )
[ 2 of 21] Compiling Data.Functor.Constant ( Data\Functor\Constant.hs, dist\build\Data\Functor\Constant.o )
[ 3 of 21] Compiling Data.Functor.Compose ( Data\Functor\Compose.hs, dist\build\Data\Functor\Compose.o )
[ 4 of 21] Compiling Data.Functor.Identity ( Data\Functor\Identity.hs, dist\build\Data\Functor\Identity.o )
[ 5 of 21] Compiling Control.Monad.Trans.Class ( Control\Monad\Trans\Class.hs, dist\build\Control\Monad\Trans\Class.o )
[ 6 of 21] Compiling Control.Monad.IO.Class ( Control\Monad\IO\Class.hs, dist\build\Control\Monad\IO\Class.o )
[ 7 of 21] Compiling Control.Monad.Trans.Cont ( Control\Monad\Trans\Cont.hs, dist\build\Control\Monad\Trans\Cont.o )
[ 8 of 21] Compiling Control.Monad.Trans.Error ( Control\Monad\Trans\Error.hs, dist\build\Control\Monad\Trans\Error.o )
[ 9 of 21] Compiling Control.Monad.Trans.Identity ( Control\Monad\Trans\Identity.hs, dist\build\Control\Monad\Trans\Iden
tity.o )
[10 of 21] Compiling Control.Monad.Trans.List ( Control\Monad\Trans\List.hs, dist\build\Control\Monad\Trans\List.o )
[11 of 21] Compiling Control.Monad.Trans.Maybe ( Control\Monad\Trans\Maybe.hs, dist\build\Control\Monad\Trans\Maybe.o )
[12 of 21] Compiling Control.Monad.Trans.Reader ( Control\Monad\Trans\Reader.hs, dist\build\Control\Monad\Trans\Reader.o
 )
[13 of 21] Compiling Control.Monad.Trans.RWS.Lazy ( Control\Monad\Trans\RWS\Lazy.hs, dist\build\Control\Monad\Trans\RWS\
Lazy.o )
[14 of 21] Compiling Control.Monad.Trans.RWS ( Control\Monad\Trans\RWS.hs, dist\build\Control\Monad\Trans\RWS.o )
[15 of 21] Compiling Control.Monad.Trans.RWS.Strict ( Control\Monad\Trans\RWS\Strict.hs, dist\build\Control\Monad\Trans\
RWS\Strict.o )
[16 of 21] Compiling Control.Monad.Trans.State.Lazy ( Control\Monad\Trans\State\Lazy.hs, dist\build\Control\Monad\Trans\
State\Lazy.o )
[17 of 21] Compiling Control.Monad.Trans.State ( Control\Monad\Trans\State.hs, dist\build\Control\Monad\Trans\State.o )
[18 of 21] Compiling Control.Monad.Trans.State.Strict ( Control\Monad\Trans\State\Strict.hs, dist\build\Control\Monad\Tr
ans\State\Strict.o )
[19 of 21] Compiling Control.Monad.Trans.Writer.Lazy ( Control\Monad\Trans\Writer\Lazy.hs, dist\build\Control\Monad\Tran
s\Writer\Lazy.o )
[20 of 21] Compiling Control.Monad.Trans.Writer ( Control\Monad\Trans\Writer.hs, dist\build\Control\Monad\Trans\Writer.o
 )
[21 of 21] Compiling Control.Monad.Trans.Writer.Strict ( Control\Monad\Trans\Writer\Strict.hs, dist\build\Control\Monad\
Trans\Writer\Strict.o )
cabal: ar is required but it could not be found.
Downloading zlib-0.5.3.1...
Configuring zlib-0.5.3.1...
Preprocessing library zlib-0.5.3.1...
Building zlib-0.5.3.1...
[1 of 5] Compiling Codec.Compression.Zlib.Stream ( dist\build\Codec\Compression\Zlib\Stream.hs, dist\build\Codec\Compres
sion\Zlib\Stream.o )
[2 of 5] Compiling Codec.Compression.Zlib.Internal ( Codec\Compression\Zlib\Internal.hs, dist\build\Codec\Compression\Zl
ib\Internal.o )
[3 of 5] Compiling Codec.Compression.Zlib.Raw ( Codec\Compression\Zlib\Raw.hs, dist\build\Codec\Compression\Zlib\Raw.o )

[4 of 5] Compiling Codec.Compression.Zlib ( Codec\Compression\Zlib.hs, dist\build\Codec\Compression\Zlib.o )
[5 of 5] Compiling Codec.Compression.GZip ( Codec\Compression\GZip.hs, dist\build\Codec\Compression\GZip.o )
cabal: ar is required but it could not be found.
cabal: Error: some packages failed to install:
Cabal-1.8.0.6 depends on filepath-1.1.0.4 which failed to install.
HTTP-4000.1.1 depends on transformers-0.2.2.0 which failed to install.
cabal-install-0.8.2 depends on zlib-0.5.3.1 which failed to install.
containers-0.3.0.0 failed during the building phase. The exception was:
ExitFailure 1
directory-1.0.1.2 depends on filepath-1.1.0.4 which failed to install.
filepath-1.1.0.4 failed during the building phase. The exception was:
ExitFailure 1
mtl-2.0.1.0 depends on transformers-0.2.2.0 which failed to install.
network-2.3.0.2 depends on parsec-2.1.0.1 which failed to install.
parsec-2.1.0.1 failed during the building phase. The exception was:
ExitFailure 1
process-1.0.1.5 depends on filepath-1.1.0.4 which failed to install.
random-1.0.0.3 failed during the building phase. The exception was:
ExitFailure 1
transformers-0.2.2.0 failed during the building phase. The exception was:
ExitFailure 1
zlib-0.5.3.1 failed during the building phase. The exception was:
ExitFailure 1
........................................................................................

My Conclusion:
As one can easily see, the output indicates some errors, but i got no idea what mean. I continued trying to install my algebra package focusing on making it availible to the Dos-Interpeter from step 1.
9. again in dos-box input prompt, i typed "cabal install constructive-algebra", that created this output:

........................................................................................
Resolving dependencies...
cabal: cannot configure algebra-0.0.0.1. It requires base >=3.0 && <4.1
For the dependency on base >=3.0 && <4.1 there are these packages:
base-3.0.3.1, base-3.0.3.2 and base-4.0.0.0. However none of them are
available.
base-3.0.3.1 was excluded because of the top level dependency base -any
base-3.0.3.2 was excluded because of the top level dependency base -any
base-4.0.0.0 was excluded because of the top level dependency base -any
........................................................................................

I suppose that the package is not installed. I need someone who can explain, what exact steps i need to do in order to get modules working.

Thanks for reading this post and answering in way that makes me understand it AND the Interpreter and Compiler working.

Keltik

Basically the cabal packaging system, or possibly the Hackage package repository, is crap. You can get around problems by installing the required dependencies directly. For some reason, this works. It is a mystery.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.