1. 08 Feb, 2020 23 commits
  2. 06 Feb, 2020 8 commits
    • Simon Peyton Jones's avatar
      Comments only · 7c122851
      Simon Peyton Jones authored
      7c122851
    • Simon Peyton Jones's avatar
      Use foldTyCo for exactTyCoVarsOfType · 5541b87c
      Simon Peyton Jones authored
      This entailed
      
      * Adding a tcf_view field to TyCoFolder
      
      * Moving exactTyCoVarsOtType to TcType.  It properly belongs
        there, since only the typechecker calls this function. But
        it also means that we can "see" and inline tcView.
      
      Metric Decrease:
        T14683
      5541b87c
    • Simon Peyton Jones's avatar
      Use foldTyCo for coVarsOfType · 9ca5c88e
      Simon Peyton Jones authored
      9ca5c88e
    • Simon Peyton Jones's avatar
      Simplify closeOverKinds · 0e59afd6
      Simon Peyton Jones authored
      0e59afd6
    • Simon Peyton Jones's avatar
      Use foldTyCo for noFreeVarsOfType · 01a1f4fb
      Simon Peyton Jones authored
      01a1f4fb
    • Simon Peyton Jones's avatar
      Reform the free variable finders for types · ed2f0e5c
      Simon Peyton Jones authored
      This patch delivers on (much of) #17509.
      
      * Introduces the shallow vs deep free variable distinction
      
      * Introduce TyCoRep.foldType,
          foldType :: Monoid a => TyCoFolder env a
                               -> env -> Type -> a
        and use it in the free variable finders.
      
      * Substitution in TyCoSubst
         * ASSERTs are on for checkValidSubst
         * checkValidSubst uses shallowTyCoVarsOfTypes etc
      
      Quite a few things still to do
      
      * We could use foldType in lots of other places
      
      * We could use mapType for substitution.  (Check that we get
        good code!)
      
      * Some (but not yet all) clients of substitution can now
        save time by using shallowTyCoVarsOfTypes
      
      * All calls to tyCoVarsOfTypes should be inspected; most of
        them should be shallow.  Maybe.
      
      * Currently shallowTyCoVarsOfTypes still returns
        unification variables, but not CoVarHoles.
        Reason: we need to return unification variables
        in some of the calls in TcSimplify, eg when promoting.
      
      * We should do the same thing for tyCoFVsOfTypes, which is
        currently unchanged.
      
      * tyCoFVsOfTypes returns CoVarHoles, because of the
        use in TcSimplify.mkResidualConstraints.  See
        Note [Emitting the residual implication in simplifyInfer]
      
      * #17509 talks about "relevant" variables too.
      ed2f0e5c
    • Ben Gamari's avatar
      Move closeOverKinds and friends to TyCoFVs · c4e6b35d
      Ben Gamari authored
      c4e6b35d
    • Ben Gamari's avatar
      VarSet: Introduce nonDetFoldVarSet · 29b72c00
      Ben Gamari authored
      29b72c00
  3. 05 Feb, 2020 5 commits
  4. 04 Feb, 2020 4 commits