{"push_id":649204797,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"b83160d07e626bee685f329a9a73e90a4a6074ae","before":"54cefbd753b516fe8645c1470750ad7f65352844","commits":[{"sha":"b83160d07e626bee685f329a9a73e90a4a6074ae","author":{"email":"c710607fca41ac039d19b731ff217fbe4721d9a2@microsoft.com","name":"Simon Peyton Jones"},"message":"Tidy up treatment of FlexibleContexts\n\nPreviously (Trac #10351) we could get\n\n    Non type-variable argument in the constraint: C [t]\n    (Use FlexibleContexts to permit this)\n    When checking that `f' has the inferred type\n      f :: forall t. C [t] => t -> ()\n\nwhich is a bit stupid: we have *inferred* a type that we\nimmediately *reject*.  This patch arranges that that the\ngeneralisation mechanism (TcSimplify.decideQuantification)\ndoesn't pick a predicate that will be rejected by the\nsubsequent validity check.\n\nThis forced some minor refactoring, as usual.","distinct":true,"url":"https://api.github.com/repos/ghc/ghc/commits/b83160d07e626bee685f329a9a73e90a4a6074ae"}]}