acowley / Frames

Data frames for tabular data.
Other
297 stars 41 forks source link

Vinyl related compilation issue #108

Open AidanDelaney opened 6 years ago

AidanDelaney commented 6 years ago

Hi, I can't get my head around the following compilation error, so I will report what I did and what I expect to happen. There is some information on my system further down in case I'm simply running a configuration that isn't supported.

What I did:

  1. Cloned Frames into a fresh directory
  2. Run stack test
  3. Observed the below compilation error

In this instance I would have expected the Frames library to compile.

$ stack test
Frames-0.4.0: build (lib + test)
Preprocessing library for Frames-0.4.0..
Building library for Frames-0.4.0..
[10 of 15] Compiling Frames.Joins     ( src/Frames/Joins.hs, .stack-work/dist/x86_64-linux-tinfo6/Cabal-2.0.1.0/build/Frames/Joins.o )

/home/aidan/tmp/Frames/src/Frames/Joins.hs:32:9: error:
    • Couldn't match kind ‘[u]’ with ‘(u0 -> *) -> [u0] -> *’
      When matching types
        rs :: [u]
        Rec :: (u0 -> *) -> [u0] -> *
      Expected type: Rec f ss -> Rec f rs
        Actual type: Rec f ss -> Rec f Rec
    • In the expression: Data.Vinyl.rcast @Rec
      In an equation for ‘rcast’: rcast = Data.Vinyl.rcast @Rec
    • Relevant bindings include
        rcast :: Rec f ss -> Rec f rs (bound at src/Frames/Joins.hs:32:1)
   |         
32 | rcast = Data.Vinyl.rcast @Rec
   |         ^^^^^^^^^^^^^^^^^^^^^

OS: Fedora 27 GHC: $ stack exec ghc -- --version The Glorious Glasgow Haskell Compilation System, version 8.2.2 stack: $ stack --version Version 1.6.3, Git revision b27e629b8c4ce369e3b8273f04db193b060000db (5454 commits) x86_64 hpack-0.20.0

chfin commented 6 years ago

I could fix this error by telling stack to use vinyl-0.8.1 instead of the 0.7 in the current lts snapshot. So probably the lower bound for the vinyl version should be raised.

MMesch commented 6 years ago

I can confirm. Putting vinyl-0.8.1 in my stack.yaml fixed this issue for me as well ...