Skip to content
This repository has been archived by the owner on Nov 29, 2020. It is now read-only.

Make mixins component a little bit smarter #67

Open
hobwekiva opened this issue Sep 22, 2018 · 1 comment
Open

Make mixins component a little bit smarter #67

hobwekiva opened this issue Sep 22, 2018 · 1 comment
Labels
enhancement New feature or request research We need to carefully think about this.

Comments

@hobwekiva
Copy link
Contributor

Consider this case:

implicit def contravariant1[F[_]: Contravariant, G[_]: Functor]: Contravariant[[x] F[G[x]]]
implicit def contravariant2[F[_]: Functor, G[_]: Contravariant]: Contravariant[[x] F[G[x]]]
implicit def divisible1[F[_]: Divisible, G[_]: Applicative]: Divisible[[x] F[G[x]]]
implicit def divisible2[F[_]: Applicative, G[_]: Divisible]: Divisible[[x] F[G[x]]]

(not sure about the divisible instances, but the point stands)

@hobwekiva hobwekiva added enhancement New feature or request research We need to carefully think about this. labels Sep 22, 2018
@edmundnoble
Copy link
Contributor

edmundnoble commented Oct 4, 2018

Meh, determining that both of these instances will be the same at runtime seems... complicated, to me. Maybe we need a free theorem checker to figure out that Functor + Contravariant = Phantom ;)

For now, @unmixin on the first of each pair of instances should be fine IMO.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request research We need to carefully think about this.
Projects
None yet
Development

No branches or pull requests

2 participants