You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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
replace parameters in HKT:done[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 }
.{ def x: T ; type Y = G }
. Keep generating weak type tags for structural part, in runtime, mutate the symbols insideMemberScope
of a weak tag holding the structural with.setInfo
– set their types to resolved parameters fromTag
_ >: G <: T
. ( & existentials? steal code from shapeless)TagKUBound
work. In macro, replacekindOf
andKind
type with a more sophisticated check, also preserving type bounds so that we can summon the appropriate instance together with type bounds insummonTag
related #369 #350
The text was updated successfully, but these errors were encountered: