Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tag macro: remaining work #374

Closed
neko-kai opened this issue Sep 1, 2018 · 3 comments
Closed

Tag macro: remaining work #374

neko-kai opened this issue Sep 1, 2018 · 3 comments

Comments

@neko-kai
Copy link
Member

neko-kai commented Sep 1, 2018

  • replace parameters in HKT: [T: Tag] => Either[T, ?] this means adding a macro case to HKTag and appropriate logic in TagMacro [i.e. extracting the real param from { type Arg }. done
  • replace parameters in structural types: { def x: T ; type Y = G }. Keep generating weak type tags for structural part, in runtime, mutate the symbols inside MemberScope of a weak tag holding the structural with .setInfo – set their types to resolved parameters from Tag
  • Replace parameters in type bounds _ >: G <: T. ( & existentials? steal code from shapeless)
  • Make TagKUBound work. In macro, replace kindOf and Kind type with a more sophisticated check, also preserving type bounds so that we can summon the appropriate instance together with type bounds in summonTag

related #369 #350

@neko-kai neko-kai added this to the 0.7 milestone Sep 1, 2018
@neko-kai neko-kai self-assigned this Sep 1, 2018
@neko-kai neko-kai modified the milestones: 0.7, 0.6 Sep 1, 2018
@neko-kai
Copy link
Member Author

Addendum: Replace parameters in type projections: def x[A <: X: Tag] => A#Component, including when prefix is a singleton: x[a.type] => a.Component // if a is a static object, not a free term

@pshirshov
Copy link
Member

Having TagKK[F[A, B]] should provide us TagK[F[Something, ?]]

@pshirshov pshirshov modified the milestones: 0.8, 0.9 Apr 26, 2019
neko-kai added a commit that referenced this issue Dec 5, 2019
e.g. derive TagK[F[Throwable, ?]] when TagKK[F] is in scope.
@neko-kai
Copy link
Member Author

neko-kai commented Dec 5, 2019

HKTag resolving is fixed. The other enhancements are split into new issues:

#771
#772
#773

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

No branches or pull requests

2 participants