Vinyl related compilation issue
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:
- Cloned Frames into a fresh directory
- Run
stack test - 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
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.
I can confirm. Putting vinyl-0.8.1 in my stack.yaml fixed this issue for me as well ...