- 04 Nov, 2014 32 commits
-
-
Simon Peyton Jones authored
We were falling into an infinite loop when doing the ambiguity check on a class method, even though we had previously detected a superclass cycle. There was code to deal with this, but it wasn't right.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This just simplifies the error message in cases where there are no useful equalities in the context
-
Simon Peyton Jones authored
that binds a variable mentioned in the wanted There is really no point in reporting ones further out; they can't be useful
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
With the new constraint solver, we don't guarantee to fully-normalise all constraints (if doing so is not necessary to solve them). So we may end up with an inferred type like f :: [F Int] -> Bool which could be simplifed to f :: [Char] -> Bool if there is a suitable family instance declaration. This patch does this normalisation, in TcBinds.mkExport
-
Simon Peyton Jones authored
Previously we could get constraints in which the untouchables-level did not strictly increase, which is one of the main invariants! This patch also simplifies and modularises the tricky case of generalising an inferred let-binding
-
Simon Peyton Jones authored
Previously the univerally-quantified variables of the DFun were also (bizarrely) used as the lexically-scoped variables of the instance declaration. So, for example, the DFun's type could not be alpha-renamed. This was an odd restriction, which has bitten me several times. This patch does the Right Thing, by adding an ib_tyvars field to the InstBindings record, which captures the lexically scoped variables. Easy, robust, nice. (I think this record probably didn't exist originally, hence the hack.)
-
Simon Peyton Jones authored
This makes newClsInst (was mkInstance) look more like newFamInst, and simplifies the plumbing of the overlap flag, and ensures that freshening (required by the InstEnv stuff) happens in one place. On the way I also tided up the rather ragged family of tcInstSkolTyVars and friends. The result at least has more uniform naming.
-
Simon Peyton Jones authored
This change is just for naming uniformity with the existing downgradeRole
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This function previously would expand *data* families even when it was asked for a *Nominal* coercion. This patch fixes it, and adds comments.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This is a straight refactoring that puts the generation of unfolding info in one place, which is a lot tidier
-
Simon Peyton Jones authored
The simplified function is tcSuperClasses; no need for an implication constraint here
-
Simon Peyton Jones authored
I forget all the details, but I spent some time trying to understand the current setup, and tried to simplify it a bit
-
Simon Peyton Jones authored
In particular, print a bit of debug info in debug-style and dump-style Otherwise distinct type variables look the same
-
Simon Peyton Jones authored
-
Herbert Valerio Riedel authored
This was broken in d94de872 when `join` was inserted between `Monad`'s Haddock string and the `class Monad m` definition thereby breaking the association.
-
Herbert Valerio Riedel authored
This removes the redundant "Minimal complete definition"-block included in the Haddock comment since Haddock renders the `MINIMAL`-pragma as well (which has is moved to the start of `class` definition for better readability of the source code) Morever, the references to `testBitDefault`, `bitDefault`, and `popCountDefault` have been moved to the respective methods' Haddock strings for which they can be used.
-
Herbert Valerio Riedel authored
[skip ci]
-
David Feuer authored
Complete #9759. Use `coerce` to get nicer definitions of `Sum` and `Product`; update documentation for `First` and `Last`. Reviewed By: hvr Differential Revision: https://phabricator.haskell.org/D422
-
Joachim Breitner authored
-
David Feuer authored
Fixes #9742. Previously, `foldr1` as applied to a list-like structure would be strict in the spine, and `foldl1` would be strict in the spine of a snoc-list. See also https://www.haskell.org/pipermail/libraries/2014-October/024035.html Differential Revision: https://phabricator.haskell.org/D423
-
- 03 Nov, 2014 2 commits
-
-
Joachim Breitner authored
thanks to Jan for nudging.
-
Joachim Breitner authored
-
- 02 Nov, 2014 6 commits
-
-
Joachim Breitner authored
This increases the chance of good code after fusing a left fold. See ticket #7994 and the new Note [Left folds via right fold] Differential Revision: https://phabricator.haskell.org/D393
-
Joachim Breitner authored
to allow the programer to explictitly set the oneShot flag. This helps with #7994 and will be used in left folds. Also see https://ghc.haskell.org/trac/ghc/wiki/OneShot This commit touches libraries/base/GHC/Event/Manager.hs (which used to have a local definition of the name oneShot) to avoid a shadowing error. Differential Revision: https://phabricator.haskell.org/D392
-
Joachim Breitner authored
Differential Revision: https://phabricator.haskell.org/D391
-
cactus authored
since they are disallowed both in class and instance declarations
-
eir@cis.upenn.edu authored
-
eir@cis.upenn.edu authored
-