Skip to content

Fix #421, match type instance heads eagerly#1406

Merged
paf31 merged 5 commits into
masterfrom
421
Aug 23, 2015
Merged

Fix #421, match type instance heads eagerly#1406
paf31 merged 5 commits into
masterfrom
421

Conversation

@paf31

@paf31 paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor

/cc @garyb

Still a WIP, but probably near enough to review.

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

Looks like quickcheck breaks due to a false positive in the overlapping instance check.

@garyb

garyb commented Aug 20, 2015

Copy link
Copy Markdown
Member

Ah, well, aside from it not fully working it looks really nice 😉

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

It's much simpler now 😄

@garyb

garyb commented Aug 20, 2015

Copy link
Copy Markdown
Member

How are the false positives arising?

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

Not sure yet, but I'll look into it.

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

Hah, it's failing because monadStateStateT and monadStateStateT1 overlap now, i.e. because it should 😄

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

It just means we need to patch transformers after this is released.

@garyb

garyb commented Aug 20, 2015

Copy link
Copy Markdown
Member

What on earth is that? 😉

Apparently needed by ParserT, but I assume that will work after this too?

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

I haven't tested parsers yet, but I will do now.

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

parsers compiles fine with the patch on transformers.

@paf31

paf31 commented Aug 20, 2015

Copy link
Copy Markdown
Contributor Author

@garyb

garyb commented Aug 22, 2015

Copy link
Copy Markdown
Member

Looks great! +:100: :shipit:

@garyb

garyb commented Aug 22, 2015

Copy link
Copy Markdown
Member

Although, there are non-transformers test failures in there too, is that because the tests are wrong now?

@paf31

paf31 commented Aug 22, 2015

Copy link
Copy Markdown
Contributor Author

Oops, you're right. Looks like it's matching the suArray instance too eagerly in Superclasses2.purs. I'll look into it.

@paf31

paf31 commented Aug 22, 2015

Copy link
Copy Markdown
Contributor Author

Hmm, GHC gives

/tmp/1.hs:21:13:
    Could not deduce (a ~ [a])
    from the context (Cl a)
      bound by the type signature for test :: Cl a => a -> a
      at /tmp/1.hs:20:9-24
      ‘a’ is a rigid type variable bound by
          the type signature for test :: Cl a => a -> a at /tmp/1.hs:20:9
    Relevant bindings include
      x :: a (bound at /tmp/1.hs:21:6)
      test :: a -> a (bound at /tmp/1.hs:21:1)
    In the first argument of ‘su’, namely ‘[cl x x]’
    In the expression: su [cl x x]
    In an equation for ‘test’: test x = su [cl x x]

So maybe we should let that test fail now.

@garyb

garyb commented Aug 22, 2015

Copy link
Copy Markdown
Member

Should we turn that into a failing test then, or do you think it's something that could be addressed? I guess if the new behaviour agrees with GHC then perhaps it is right 😉

@paf31

paf31 commented Aug 22, 2015

Copy link
Copy Markdown
Contributor Author

I think it should probably be a failing test, yeah. I can't get to it today, but hopefully can make this mergeable tomorrow.

@garyb

garyb commented Aug 23, 2015

Copy link
Copy Markdown
Member

Oops, merging #1410 means this now conflicts.

@garyb

garyb commented Aug 23, 2015

Copy link
Copy Markdown
Member

I'm more than happy for this to go in whenever you're ready, by the way.

@paf31

paf31 commented Aug 23, 2015

Copy link
Copy Markdown
Contributor Author

core-tests is breaking, but should work again once transformers is merged and released. I need to also release 0.7.4 to make that transformers release build, so I just need to coordinate a few things. If you think it's all good to go, I'll merge and release everything this afternoon.

Could you please run your tool and find reverse dependencies for transformers?

@garyb

garyb commented Aug 23, 2015

Copy link
Copy Markdown
Member

I'm currently working on a fix for #1244, I'd really like to get that in for 0.7.4, hopefully it shouldn't take too much longer.

I'll run off that list once I'm done :)

Also suffering from internet problems today so not actually present in IRC, posting this from my phone...

paf31 added a commit that referenced this pull request Aug 23, 2015
Fix #421, match type instance heads eagerly
@paf31 paf31 merged commit 031e5c5 into master Aug 23, 2015
@paf31 paf31 deleted the 421 branch August 23, 2015 21:45
@paf31

paf31 commented Aug 23, 2015

Copy link
Copy Markdown
Contributor Author

I can figure out the dependent modules, that's ok. I can make a transformers release now, but make it pre-release?

@garyb

garyb commented Aug 24, 2015

Copy link
Copy Markdown
Member
  • purescript-quickcheck
  • purescript-maps
  • purescript-catenable-lists
  • purescript-free
  • purescript-strongcheck
  • purescript-sets
  • purescript-graphs
  • purescript-parallel

@paf31

paf31 commented Aug 24, 2015

Copy link
Copy Markdown
Contributor Author

maps, really?

@paf31

paf31 commented Aug 24, 2015

Copy link
Copy Markdown
Contributor Author

Oh devDependencies though.

@garyb

garyb commented Aug 24, 2015

Copy link
Copy Markdown
Member

Yeah, via quickcheck I assume

@paf31

paf31 commented Aug 24, 2015

Copy link
Copy Markdown
Contributor Author

No need for a version bump on those then, but we can update the dependency version. It's not going to break any code to pull in maps, since transformers won't be pulled in too, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants