Closed jkarni closed 7 years ago
Alright. I'm usually reluctant to make type classes poly-kinded but I think there is a sufficiently compelling case here because:
vinyl
...hoist
laws (i.e. hoist id = id
, hoist (f . g) = hoist f . hoist g
)Would you be able to write up the pull request for this? If not, I can do it
Fixed by #30
I can upload this to Hackage if you don't have any other pending changes you'd like to submit
I had to revert this change due to #32
Fair enough - thanks for letting me know!
Should this be reopened? It seems the underlying problem has been fixed in GHC, according to comments in #32.
My only question is whether or not this requires a major version bump or not if we reintroduce this. I'm reviving the discussion in that issue
Alright, so the plan is to reintroduce this change but with a major version bump so that downstream libraries that might be affected by the GHC bug (and/or kind inference ambiguity) aren't affected.
Currently
MFunctor
has kind(* -> *) -> * -> *
. Is there any reason not to adopt the more general(* -> *) -> k -> *
? The general use-case is making things likevinyl
records instances (withhoist = rmap
).(By the way, I've always really liked this library, and this seems like a good occasion to say so!)