File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ trait Alternative [F [_]]
2+
3+ opaque type Derived [A ] = A
4+ object Derived :
5+ extension [A ](derived : Derived [A ]) def instance : A = derived
6+ infix type <<< [F [_], G [_]] = [x] =>> F [G [x]]
7+
8+ import Derived .*
9+ import scala .compiletime .summonInline
10+
11+ type DerivedAlternative [F [_]] = Derived [Alternative [F ]]
12+ object DerivedAlternative :
13+ inline def apply [F [_]]: Alternative [F ] =
14+ import DerivedAlternative .given
15+ summonInline[DerivedAlternative [F ]].instance
16+ given nested [F [_], G [_]]: DerivedAlternative [F <<< G ] = ???
17+
18+ object auto :
19+ object alternative :
20+ transparent inline given [F [_]]: Alternative [F ] = DerivedAlternative [F ]
21+
22+ trait Test :
23+ import Test .*
24+ import auto .alternative .given
25+ val fails = summon[Alternative [OptList ]]
26+
27+ // Fails if companion object defined AFTER trait
28+ object Test :
29+ type OptList [A ] = Option [List [A ]]
You can’t perform that action at this time.
0 commit comments