Hi,
I'm trying to build an app with the new release candidate and I'm running into a couple of issues, some which I can fix or workaround, some are worrisome and others are blocking me. I'm using Nix, if that matters.
The fixable
---------------
- The expected too strict version bounds. Worked around using doJailbreak, will send PRs to the respective packages with relaxed bounds.
- A weird kind error when using ConstraintKinds in a propietary package which didn't manifest itself with ghc < 8.2:
src/Sigym4/Propag/Types.hs:1071:4: error:
• Expected a type, but
‘(PropagIOConstraint l a,
Missing (PropagIOVector l) (PropagIONullable l a),
Elem (PropagIONullable l a) ~ a)’ has kind
‘Constraint’
• In the type ‘((PropagIOConstraint l a,
Missing (PropagIOVector l) (PropagIONullable l a),
Elem (PropagIONullable l a) ~ a))’
In the type declaration for ‘CanSerialize’
|
1071 | (( PropagIOConstraint l a
| ^^^^^^^^^^^^^^^^^^^^^^^^...
src/Sigym4/Propag/Types.hs:1077:4: error:
• Expected a constraint,
but ‘(CanSerialize l Double, CanSerialize l Int16)’ has kind ‘*’
• In the type ‘(CanSerialize l Double, CanSerialize l Int16)’
In the type declaration for ‘CanSerializePropagTypes’
|
1077 | ( CanSerialize l Double
| ^^^^^^^^^^^^^^^^^^^^^^^...
I cannot link to the source for this package since it belongs to my employer but I think that the interesting code is:
type CanSerialize l a = |
| ( PropagIOConstraint l a |
| , Missing (PropagIOVector l) (PropagIONullable l a) |
| , Elem (PropagIONullable l a) ~ a |
| )
|
where PropagIOConstraint, PropagIONullable and PropagIOVector are "standalone" type families and Elem is an associated type family (not from IsList)
Both errors disappear if I give an explicit kind signature like this: "type CanSerialize l a = (..... :: Constraint)". Is this expected behaviour? Should I try to isolate and open a ticket?
The worrisome
--------------------
- I had to disable the tests for two packages since they seem to "hang" (ie: they never finish running and don't seem to consume any CPU time). These packages are lens-4.15.1 and fingertree-0.1.1.0. Maybe it's a Nix environmental issue, I'm not sure. Can anyone reproduce this?
The blockers
-----------------
- I can't manage to install several packages which include executables (namely, update-nix-fetchgit and snap-server, for the moment) because Cabal says that it cannot find the source for the main module of the executables:
"Setup: can't find source for Main in ."
It seems that the "hs-source-dir" directive in the .cabal file is not being honored. Maybe a Nix-only issue? Can anyone reproduce this? Any ideas on how can I fix it?
Thanks very much for GHC, btw :)
Alberto