ekmett / profunctors

Haskell 98 Profunctors
http://hackage.haskell.org/package/profunctors
Other
70 stars 43 forks source link

profunctors-4.4.1 failed to install #23

Closed sid-kap closed 9 years ago

sid-kap commented 9 years ago

I was trying to install this package using cabal, and I got this message:

src/Data/Profunctor/Collage.hs:27:37:
    In module `Data.Semigroupoid.Coproduct':
      `L' is a data constructor of `Coproduct'
    To import it use
      `import' Data.Semigroupoid.Coproduct( Coproduct( L ) )
    or
      `import' Data.Semigroupoid.Coproduct( Coproduct(..) )

src/Data/Profunctor/Collage.hs:27:40:
    In module `Data.Semigroupoid.Coproduct':
      `R' is a data constructor of `Coproduct'
    To import it use
      `import' Data.Semigroupoid.Coproduct( Coproduct( R ) )
    or
      `import' Data.Semigroupoid.Coproduct( Coproduct(..) )
cabal: Error: some packages failed to install:

When I rolled back my version of semigroupoids from 4.5 to 4.3, the installation worked. So there must be some incompatibility with version 4.5 of semigroupoids.

christiaanb commented 9 years ago

This seems like a Cabal bug imo, because the profunctors.cabal file clearly says:

semigroupoids       >= 4     && < 4.5,

However, I saw this in one of my travis builds:

Building semigroupoids-4.5...
Installed semigroupoids-4.5
Downloading bifunctors-4.2.1...
Downloading profunctors-4.4.1...
Configuring bifunctors-4.2.1...
Configuring profunctors-4.4.1...
Building bifunctors-4.2.1...
Building profunctors-4.4.1...
Failed to install profunctors-4.4.1
Build log ( /home/travis/build/clash-lang/clash-compiler/.cabal-sandbox/logs/profunctors-4.4.1.log ):
Configuring profunctors-4.4.1...
Building profunctors-4.4.1...
Preprocessing library profunctors-4.4.1...
[ 1 of 14] Compiling Data.Profunctor.Trace ( src/Data/Profunctor/Trace.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Trace.o )
[ 2 of 14] Compiling Data.Profunctor.Unsafe ( src/Data/Profunctor/Unsafe.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Unsafe.o )
[ 3 of 14] Compiling Data.Profunctor  ( src/Data/Profunctor.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor.o )
[ 4 of 14] Compiling Data.Profunctor.Monad ( src/Data/Profunctor/Monad.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Monad.o )
[ 5 of 14] Compiling Data.Profunctor.Adjunction ( src/Data/Profunctor/Adjunction.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Adjunction.o )
[ 6 of 14] Compiling Data.Profunctor.Cayley ( src/Data/Profunctor/Cayley.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Cayley.o )
src/Data/Profunctor/Cayley.hs:34:10: warning:
    Redundant constraint: Functor f
    In the instance declaration for ‘ProfunctorMonad (Cayley f)’
[ 7 of 14] Compiling Data.Profunctor.Closed ( src/Data/Profunctor/Closed.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Closed.o )
src/Data/Profunctor/Closed.hs:153:10: warning:
    Redundant constraint: Profunctor p
    In the instance declaration for ‘Profunctor (Environment p)’
[ 8 of 14] Compiling Data.Profunctor.Rep ( src/Data/Profunctor/Rep.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Rep.o )
src/Data/Profunctor/Rep.hs:62:10: warning:
    Redundant constraint: Functor m
    In the instance declaration for ‘Representable (Kleisli m)’
[ 9 of 14] Compiling Data.Profunctor.Composition ( src/Data/Profunctor/Composition.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Composition.o )
[10 of 14] Compiling Data.Profunctor.Codensity ( src/Data/Profunctor/Codensity.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Codensity.o )
[11 of 14] Compiling Data.Profunctor.Collage ( src/Data/Profunctor/Collage.hs, dist/dist-sandbox-1f3fafaf/build/Data/Profunctor/Collage.o )
src/Data/Profunctor/Collage.hs:27:37: error:
    In module ‘Data.Semigroupoid.Coproduct’:
      ‘L’ is a data constructor of ‘Coproduct’
    To import it use
      ‘import’ Data.Semigroupoid.Coproduct( Coproduct( L ) )
    or
      ‘import’ Data.Semigroupoid.Coproduct( Coproduct(..) )
src/Data/Profunctor/Collage.hs:27:40: error:
    In module ‘Data.Semigroupoid.Coproduct’:
      ‘R’ is a data constructor of ‘Coproduct’
    To import it use
      ‘import’ Data.Semigroupoid.Coproduct( Coproduct( R ) )
    or
      ‘import’ Data.Semigroupoid.Coproduct( Coproduct(..) )

Where for some reason semigroupoids-4.5 was appearantly allowed in an installation plan where one of the packages clearly says it doesn't want semigroupoids-4.5...

christiaanb commented 9 years ago

Ah, I see what was going on: http://hackage.haskell.org/package/profunctors-4.4.1/revisions/

The dependencies were wrong, but that is fixed now on hackage.

ekmett commented 9 years ago

This should be resolved now by the retconned version bounds on all of profunctors. A forthcoming version of profunctors will work with the new semigroupoids.