Generalize many kinds, and generalize some constraints from Applicative to Functor.#73
Conversation
…ive` to `Functor`.
dwincort
left a comment
There was a problem hiding this comment.
The change from Applicative to Functor seems like a clear win -- I'm not sure why they were all Applicative if that wasn't necessary, but it's good to make the library more general.
The changes for kinds are a little more frustrating. In general, I like kind signatures as it can make the types a little easier to read, but if we add kind variables, then it messes with type applications. I think making the kinds implicit (as you've done) is probably a win though.
src/Data/Row/Variants.hs
Outdated
| _ -> Right $ Const Nothing | ||
|
|
||
| doCons :: forall l (τ :: * -> *) ρ | ||
| doCons :: forall l τ ρ |
There was a problem hiding this comment.
GHC doesn't seem to like this so much, and I'm not quite sure why. Did you get it to type check? Is it something about a change in a newer version of GHC? This library uses many "new" features, but I don't really want it to be so bleeding edge that even GHC from a year ago can't compile it.
|
There's a little bit of work/bookkeeping I need to do for the next hackage release, but I'll try to get it done in the next week or so :). |
Hi, it's been a while ☺
I've been playing with the intersection of [polymorphic variants, open recursion, lenses], for which i need this.