
#15351: QuantifiedConstraints ignore FunctionalDependencies -------------------------------------+------------------------------------- Reporter: aaronvargo | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.5 checker) | Keywords: Resolution: | QuantifiedConstraints Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by AntC): Replying to [comment:5 goldfire]:
{{{#!hs bar :: (forall b. C (f b) Int) => f a -> String bar = show . foo }}}
So, since the usage of `foo` induces a `C (f a) alpha` constraint (for
some unknown `alpha`) we can conclude that `alpha` must be `Int` by the fundep.
Hmm (and accepting for the moment this is a legitimate `QuantifiedConstraint`). The OP doesn't include any `C` instance for the `f` in `bar` -- i.e. evidence for `C (f b) alpha`. Is that what the message `Could not deduce (C (f a) a0) arising from a use of ‘foo’` is saying? Is there another message the OP hasn't included `no instance for (C (f a) a0) ...`? The fact of the message saying ''deduce'' suggests it's trying to do apply some sort of implication?? Deduce what from what? (Simon's comment:6 that arrived as I was writing this doesn't explain what specifically GHC "checks it against" in this case.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15351#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler