Hi all,
I have played quite a bit with the ConstraintKinds extension, pretty cool.
But I found a problem which I thought would be made better, plz correct me if I am wrong
take a contrived example,
class C B => B a where
here B :: * -> Constraint, I think this definition is reasonable, since B does not appears in the
first position of the context.
Previously, we require acyclic class declarations since we don't have ConstraintKinds extension
but now since type class could be abstracted, I think the definition above should be ok.
the ghc-manual cited the program below is valid