Skip to content
Snippets Groups Projects
  1. Jan 27, 2019
  2. Jan 26, 2019
  3. Jan 25, 2019
  4. Jan 23, 2019
  5. Jan 22, 2019
    • Herbert Valerio Riedel's avatar
      Update transformers module · c9fe14cc
      Herbert Valerio Riedel authored and Ben Gamari's avatar Ben Gamari committed
      c9fe14cc
    • Simon Peyton Jones's avatar
      Fix bogus worker for newtypes · a5373c1f
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      The "worker" for a newtype is actually a function
      with a small (compulsory) unfolding, namely a cast.
      
      But the construction of this function was plain wrong
      for newtype /instances/; it cast the arguemnt to the
      family type rather than the representation type.
      
      This never actually bit us because, in the case of a
      family instance, we immediately cast the result to
      the family type.  So we get
         \x. (x |> co1) |> co2
      
      where the compositio of co1 and co2 is ill-kinded.
      However the optimiser (even the simple optimiser)
      just collapsed those casts, ignoring the mis-match
      in the middle, so we never saw the problem.
      
      Trac #16191 is indeed a dup of #16141; but the resaon
      these tickets produce Lint errors is not the unnecessary
      forcing; it's because of the ill-typed casts.
      
      This patch fixes the ill-typed casts, properly.  I can't
      see a way to trigger an actual failure prior to this
      patch, but it's still wrong wrong wrong to have ill-typed
      casts, so better to get rid of them.
      a5373c1f
  6. Jan 21, 2019
Loading