Skip to content

Infinite loop during typing match types #13431

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

Closed
jrudolph opened this issue Aug 31, 2021 · 6 comments
Closed

Infinite loop during typing match types #13431

jrudolph opened this issue Aug 31, 2021 · 6 comments
Assignees
Labels
area:match-types exp:intermediate itype:bug Spree Suitable for a future Spree stat:needs minimization Needs a self contained minimization

Comments

@jrudolph
Copy link
Contributor

Compiler version

3.0.1

Reproducer

Try to compile code from this commit:

sirthias/parboiled2@3cc460f

with parboiledCoreJVM/Test/compile runs into an infinite loop.

Expectation

There's probably some error here leading to the infinite loop but it's hard to debug without any error message. The documentation seems to imply that these situations are caught and somehow handled but that doesn't seem to be the case here.

I can try to minimize further if needed.

@dwijnand dwijnand added stat:needs minimization Needs a self contained minimization area:match-types labels Aug 31, 2021
@anatoliykmetyuk anatoliykmetyuk added the Spree Suitable for a future Spree label Sep 3, 2021
@jrudolph
Copy link
Contributor Author

Is there any debug setting to help finding out which file could be the problem? The alternative of bisecting the code base after every change is not going well...

@bishabosha
Copy link
Member

did you try using the -Yno-deep-subtypes setting? I think it should intercept when a matchtype is in a cycle

@jrudolph
Copy link
Contributor Author

jrudolph commented Sep 13, 2021

Thanks, no that setting doesn't change anything. Here's a stack trace captured randomly while it was running (bit different code than before with 3.0.2):

Details
	at dotty.tools.dotc.util.SimpleIdentityMap$MapMore.apply(SimpleIdentityMap.scala:154)
	at dotty.tools.dotc.core.OrderingConstraint.entry(OrderingConstraint.scala:148)
	at dotty.tools.dotc.core.Types$MatchType.contextInfo$1(Types.scala:4674)
	at dotty.tools.dotc.core.Types$MatchType.updateReductionContext$1$$anonfun$1(Types.scala:4686)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6407/2089115817.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.mutable.HashSet$Node.foreach(HashSet.scala:435)
	at scala.collection.mutable.HashSet.foreach(HashSet.scala:361)
	at dotty.tools.dotc.core.Types$MatchType.updateReductionContext$2(Types.scala:4686)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4710)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$6406/1388084376.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$6405/1263556930.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)

@griggt
Copy link
Contributor

griggt commented Sep 15, 2021

Here's a self-contained reproducer:

object Test:
  summon[TailSwitch[Nothing, HNil, HNil]]

sealed trait HList
sealed trait HNil extends HList
case object HNil extends HNil
final case class ::[+H, +T <: HList](head: H, tail: T) extends HList

sealed trait TailSwitch[L <: HList, T <: HList, R <: HList]:
  type Out <: HList

object TailSwitch:
  implicit def tailSwitch[L <: HList, T <: HList, R <: HList]
      : TailSwitch[L, T, R] { type Out = TailSwitch0[L, L, T, T, R, HNil] } = ???

  type Reverse0[Acc <: HList, L <: HList] <: HList = L match
    case HNil     => Acc
    case ::[h, t] => Reverse0[h :: Acc, t]

  type Reverse1[L <: HList] <: HList = L match
    case HNil     => HNil
    case ::[h, t] => Reverse0[h :: HNil, t]

  type Prepend0[A <: HList, B <: HList] <: HList = A match
    case HNil     => B
    case ::[h, t] => ::[h, Prepend0[t, B]]

  type TailSwitch0[L <: HList, LI <: HList, T <: HList, TI <: HList, R <: HList, RI <: HList] <: HList = TI match
    case L => R
    case _ =>
      LI match
        case T => Prepend0[Reverse1[RI], R]
        case HNil =>
          TI match
            case ::[_, t] => TailSwitch0[L, HNil, T, t, R, RI]
        case ::[h, t] =>
          TI match
            case HNil      => TailSwitch0[L, t, T, HNil, R, h :: RI]
            case ::[_, tt] => TailSwitch0[L, t, T, tt, R, h :: RI]

and a stack trace while it was running with 3.0.2:

	at dotty.tools.dotc.core.OrderingConstraint.entry(OrderingConstraint.scala:148)
	at dotty.tools.dotc.core.Types$MatchType.contextInfo$1(Types.scala:4674)
	at dotty.tools.dotc.core.Types$MatchType.updateReductionContext$1$$anonfun$1(Types.scala:4686)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$661/1196200241.applyVoid(Unknown Source)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.mutable.HashSet$Node.foreach(HashSet.scala:435)
	at scala.collection.mutable.HashSet.foreach(HashSet.scala:361)
	at dotty.tools.dotc.core.Types$MatchType.updateReductionContext$2(Types.scala:4686)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4710)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:145)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCases(TypeComparer.scala:2926)
	at dotty.tools.dotc.core.Types$MatchType.liftedTree1$2(Types.scala:4706)
	at dotty.tools.dotc.core.Types$MatchType.matchCases$1(Types.scala:4711)
	at dotty.tools.dotc.core.Types$MatchType.reduced$$anonfun$1(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType$$Lambda$659/1512822728.apply(Unknown Source)
	at dotty.tools.dotc.core.TypeComparer.inSubComparer(TypeComparer.scala:2637)
	at dotty.tools.dotc.core.TypeComparer.tracked(TypeComparer.scala:2647)
	at dotty.tools.dotc.core.TypeComparer$.tracked(TypeComparer.scala:2800)
	at dotty.tools.dotc.core.Types$MatchType.reduced(Types.scala:4715)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$2$$anonfun$1(Types.scala:4146)
	at dotty.tools.dotc.core.Types$AppliedType$$Lambda$672/1878454236.apply(Unknown Source)
	at dotty.tools.dotc.core.MatchTypeTrace$.recurseWith(MatchTypeTrace.scala:76)
	at dotty.tools.dotc.core.Types$AppliedType.tryMatchAlias$1(Types.scala:4147)
	at dotty.tools.dotc.core.Types$AppliedType.tryNormalize(Types.scala:4152)
	at dotty.tools.dotc.core.Types$Type.normalized(Types.scala:1399)
	at dotty.tools.dotc.core.Types$MatchType.tryNormalize(Types.scala:4664)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:169)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.mapArgs$1(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:146)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.Types$TypeMap.mapOverLambda(Types.scala:5375)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5400)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:178)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at dotty.tools.dotc.core.TypeOps$SimplifyMap.apply(TypeOps.scala:183)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5466)
	at dotty.tools.dotc.core.TypeOps$.mapOver$1(TypeOps.scala:129)
	at dotty.tools.dotc.core.TypeOps$.simplify(TypeOps.scala:170)
	at dotty.tools.dotc.core.Types$Type.simplified(Types.scala:1866)
	at dotty.tools.dotc.core.TrackingTypeComparer.matchCase$1(TypeComparer.scala:2882)
	at dotty.tools.dotc.core.TrackingTypeComparer.recur$1(TypeComparer.scala:2897)
	at dotty.tools.dotc.core.TrackingTypeComparer.op$proxy62$1(TypeComparer.scala:2925)

@griggt
Copy link
Contributor

griggt commented Sep 15, 2021

The good news is that since #12768 was merged to master yesterday, the above reproducer no longer hangs.

And neither does sirthias/parboiled2@3cc460f which instead now emits a number of errors:

[info] compiling 13 Scala sources to /src/parboiled2/parboiled-core/.jvm/target/scala-3.1.1-RC1-bin-SNAPSHOT/test-classes ...
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/ActionSpec.scala:199:25 
[error] 199 |        def targetRule = testRule
[error]     |                         ^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[
[error]     |  org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |    org.parboiled2.support.hlist.HNil
[error]     |  , org.parboiled2.support.hlist.HNil, Nothing, Nothing, 
[error]     |    org.parboiled2.support.hlist.HList
[error]     |  , org.parboiled2.support.hlist.HNil]
[error]     |, 
[error]     |  org.parboiled2.support.TailSwitch[Nothing, org.parboiled2.support.hlist.HNil, 
[error]     |    org.parboiled2.support.hlist.HNil
[error]     |  ]{
[error]     |    Out = 
[error]     |      (Nothing match {
[error]     |        case org.parboiled2.support.hlist.HNil => 
[error]     |          org.parboiled2.support.TailSwitch.Prepend0[
[error]     |            org.parboiled2.support.TailSwitch.Reverse1[
[error]     |              org.parboiled2.support.hlist.HNil
[error]     |            ]
[error]     |          , org.parboiled2.support.hlist.HNil]
[error]     |        case org.parboiled2.support.hlist.HNil => 
[error]     |          org.parboiled2.support.hlist.HNil match {
[error]     |            case _ :: t => 
[error]     |              org.parboiled2.support.TailSwitch.TailSwitch0[Nothing, 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              , org.parboiled2.support.hlist.HNil, t, 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              , org.parboiled2.support.hlist.HNil]
[error]     |          } <: org.parboiled2.support.hlist.HList
[error]     |        case h :: t² => 
[error]     |          org.parboiled2.support.hlist.HNil match {
[error]     |            case org.parboiled2.support.hlist.HNil => 
[error]     |              org.parboiled2.support.TailSwitch.TailSwitch0[Nothing, t², 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              , org.parboiled2.support.hlist.HNil, 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              , h :: org.parboiled2.support.hlist.HNil]
[error]     |            case _² :: tt => 
[error]     |              org.parboiled2.support.TailSwitch.TailSwitch0[Nothing, t², 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              , tt, org.parboiled2.support.hlist.HNil, h :: 
[error]     |                org.parboiled2.support.hlist.HNil
[error]     |              ]
[error]     |          } <: org.parboiled2.support.hlist.HList
[error]     |      } <: org.parboiled2.support.hlist.HList)
[error]     |  }#Out
[error]     |]
[error]     |Required: org.parboiled2.RuleN[org.parboiled2.support.hlist.HNil]
[error]     |
[error]     |where:    _  is a type variable with constraint 
[error]     |          _² is a type variable with constraint 
[error]     |          t  is a type variable with constraint <: org.parboiled2.support.hlist.HList
[error]     |          t² is a type variable with constraint <: org.parboiled2.support.hlist.HList
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, Nothing, Nothing, 
[error]     |  org.parboiled2.support.hlist.HList
[error]     |, org.parboiled2.support.hlist.HNil]
[error]     |  failed since selector  Nothing
[error]     |  is uninhabited (there are no values of that type).
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/BasicSpec.scala:172:30 
[error] 172 |        def targetRule = rule(colors ~ EOI)
[error]     |                              ^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?1.Out, ?2.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, Int :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?1 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?3.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |}
[error]     |          ?2 is an unknown value of type org.parboiled2.support.TailSwitch[?4.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?4.Out, ?4.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |, org.parboiled2.support.hlist.HNil]
[error]     |  failed since selector  ?3.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => org.parboiled2.support.hlist.HNil
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?3.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?3.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?3.Out, t, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?3.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?3.Out, org.parboiled2.support.hlist.HNil, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , h :: org.parboiled2.support.hlist.HNil]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?3.Out, tt, org.parboiled2.support.hlist.HNil, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/BasicSpec.scala:181:30 
[error] 181 |        def targetRule = rule(valueMap(colors, ignoreCase = true) ~ EOI)
[error]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?6.Out, ?7.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, Int :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?6 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?8.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?8.Out, ?8.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |}
[error]     |          ?7 is an unknown value of type org.parboiled2.support.TailSwitch[?9.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?9.Out, ?9.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?8.Out, ?8.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |, org.parboiled2.support.hlist.HNil]
[error]     |  failed since selector  ?8.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => org.parboiled2.support.hlist.HNil
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?8.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?8.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?8.Out, t, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?8.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?8.Out, org.parboiled2.support.hlist.HNil, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , h :: org.parboiled2.support.hlist.HNil]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?8.Out, tt, org.parboiled2.support.hlist.HNil, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/BasicSpec.scala:190:30 
[error] 190 |        def targetRule = rule(map ~ EOI)
[error]     |                              ^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?11.Out, ?12.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, Int :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?11 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?13.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?13.Out, ?13.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |}
[error]     |          ?12 is an unknown value of type org.parboiled2.support.TailSwitch[?14.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?14.Out, ?14.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?13.Out, ?13.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |, org.parboiled2.support.hlist.HNil]
[error]     |  failed since selector  ?13.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => org.parboiled2.support.hlist.HNil
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?13.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , org.parboiled2.support.hlist.HNil]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?13.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?13.Out, t, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?13.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?13.Out, org.parboiled2.support.hlist.HNil, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , h :: org.parboiled2.support.hlist.HNil]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?13.Out, tt, org.parboiled2.support.hlist.HNil, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CalculatorSpec.scala:41:22 
[error] 41 |    def Parens = rule ('(' ~ Expression ~ ')')
[error]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]    |Found:    org.parboiled2.Rule[?1.Out, ?2.Out]
[error]    |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, 
[error]    |  org.parboiled2.support.TailSwitch[Int :: org.parboiled2.support.hlist.HNil, 
[error]    |    org.parboiled2.support.hlist.HNil
[error]    |  , org.parboiled2.support.hlist.HNil]{
[error]    |    Out = 
[error]    |      org.parboiled2.support.TailSwitch.TailSwitch0[Int :: 
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      , Int :: org.parboiled2.support.hlist.HNil, 
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      ]
[error]    |  }#Out
[error]    |]
[error]    |
[error]    |where:    ?1 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?3.Out, 
[error]    |  ?4.Out
[error]    |]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    ]
[error]    |}
[error]    |          ?2 is an unknown value of type org.parboiled2.support.TailSwitch[?5.Out, org.parboiled2.support.hlist.HNil, 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[?5.Out, ?5.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    ]
[error]    |}
[error]    |
[error]    |
[error]    |Note: a match type could not be fully reduced:
[error]    |
[error]    |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]    |  , 
[error]    |org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]
[error]    |  failed since selector  ?3.Out
[error]    |  does not match  case org.parboiled2.support.hlist.HNil => ?4.Out
[error]    |  and cannot be shown to be disjoint from it either.
[error]    |  Therefore, reduction cannot advance to the remaining case
[error]    |
[error]    |    case _ => org.parboiled2.support.hlist.HNil match {
[error]    |  case ?3.Out => 
[error]    |    org.parboiled2.support.TailSwitch.Prepend0[
[error]    |      org.parboiled2.support.TailSwitch.Reverse1[
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      ]
[error]    |    , ?4.Out]
[error]    |  case org.parboiled2.support.hlist.HNil => 
[error]    |    ?3.Out match {
[error]    |      case _ :: t => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , org.parboiled2.support.hlist.HNil, ?3.Out, t, ?4.Out, 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |  case h :: t => 
[error]    |    ?3.Out match {
[error]    |      case org.parboiled2.support.hlist.HNil => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, org.parboiled2.support.hlist.HNil, ?4.Out, h :: 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |      case _ :: tt => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, tt, ?4.Out, h :: org.parboiled2.support.hlist.HNil]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |} <: org.parboiled2.support.hlist.HList
[warn] -- [E129] Potential Issue Warning: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CharPredicateSpec.scala:85:3 
[warn] 85 |  }
[warn]    |   ^
[warn]    |A pure expression does nothing in statement position; you may be omitting necessary parentheses
[warn]    | This location contains code that was inlined from CharPredicateSpec.scala:85
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CombinatorSpec.scala:89:30 
[error] 89 |        def targetRule = rule(capture("a") ~ zeroOrMore(ch('x') ~> ((_: String) + 'x')) ~ EOI)
[error]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]    |Found:    org.parboiled2.Rule[?1.Out, ?2.Out]
[error]    |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, String :: 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]
[error]    |
[error]    |where:    ?1 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?3.Out, 
[error]    |  ?4.Out
[error]    |]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    ]
[error]    |}
[error]    |          ?2 is an unknown value of type org.parboiled2.support.TailSwitch[?5.Out, org.parboiled2.support.hlist.HNil, 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[?5.Out, ?5.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    ]
[error]    |}
[error]    |
[error]    |
[error]    |Note: a match type could not be fully reduced:
[error]    |
[error]    |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]    |  , 
[error]    |org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]
[error]    |  failed since selector  ?3.Out
[error]    |  does not match  case org.parboiled2.support.hlist.HNil => ?4.Out
[error]    |  and cannot be shown to be disjoint from it either.
[error]    |  Therefore, reduction cannot advance to the remaining case
[error]    |
[error]    |    case _ => org.parboiled2.support.hlist.HNil match {
[error]    |  case ?3.Out => 
[error]    |    org.parboiled2.support.TailSwitch.Prepend0[
[error]    |      org.parboiled2.support.TailSwitch.Reverse1[
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      ]
[error]    |    , ?4.Out]
[error]    |  case org.parboiled2.support.hlist.HNil => 
[error]    |    ?3.Out match {
[error]    |      case _ :: t => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , org.parboiled2.support.hlist.HNil, ?3.Out, t, ?4.Out, 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |  case h :: t => 
[error]    |    ?3.Out match {
[error]    |      case org.parboiled2.support.hlist.HNil => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, org.parboiled2.support.hlist.HNil, ?4.Out, h :: 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |      case _ :: tt => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, tt, ?4.Out, h :: org.parboiled2.support.hlist.HNil]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CombinatorSpec.scala:130:30 
[error] 130 |        def targetRule = rule(capture("a") ~ oneOrMore(ch('x') ~> ((_: String) + 'x')) ~ EOI)
[error]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?7.Out, ?8.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, String :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?7 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?9.Out, 
[error]     |  ?10.Out
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?9.Out, ?9.Out, ?10.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |          ?8 is an unknown value of type org.parboiled2.support.TailSwitch[?11.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?11.Out, ?11.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?9.Out, ?9.Out, ?10.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |  failed since selector  ?9.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => ?10.Out
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?9.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , ?10.Out]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?9.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?9.Out, t, ?10.Out, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?9.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?9.Out, org.parboiled2.support.hlist.HNil, ?10.Out, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?9.Out, tt, ?10.Out, h :: org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CombinatorSpec.scala:152:30 
[error] 152 |        def targetRule = rule(capture("a") ~ optional(ch('x') ~> ((_: String) + 'x')) ~ EOI)
[error]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?13.Out, ?14.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, String :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?13 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?15.Out, 
[error]     |  ?16.Out
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?15.Out, ?15.Out, ?16.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |          ?14 is an unknown value of type org.parboiled2.support.TailSwitch[?17.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?17.Out, ?17.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?15.Out, ?15.Out, ?16.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |  failed since selector  ?15.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => ?16.Out
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?15.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , ?16.Out]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?15.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?15.Out, t, ?16.Out, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?15.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?15.Out, org.parboiled2.support.hlist.HNil, ?16.Out, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?15.Out, tt, ?16.Out, h :: org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CombinatorSpec.scala:159:30 
[error] 159 |        def targetRule = rule(capture("a") ~ (ch('x') ~> ((_: String) + 'x')).? ~ EOI)
[error]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?19.Out, ?20.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, String :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?19 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?21.Out, 
[error]     |  ?22.Out
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?21.Out, ?21.Out, ?22.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |          ?20 is an unknown value of type org.parboiled2.support.TailSwitch[?23.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?23.Out, ?23.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?21.Out, ?21.Out, ?22.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |  failed since selector  ?21.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => ?22.Out
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?21.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , ?22.Out]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?21.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?21.Out, t, ?22.Out, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?21.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?21.Out, org.parboiled2.support.hlist.HNil, ?22.Out, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?21.Out, tt, ?22.Out, h :: org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/CombinatorSpec.scala:259:30 
[error] 259 |        def targetRule = rule(capture("a") ~ 2.times(ch('x') ~> ((_: String) + 'x')) ~ EOI)
[error]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]     |Found:    org.parboiled2.Rule[?25.Out, ?26.Out]
[error]     |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, String :: 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |
[error]     |where:    ?25 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?27.Out, 
[error]     |  ?28.Out
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, ?27.Out, ?27.Out, ?28.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |          ?26 is an unknown value of type org.parboiled2.support.TailSwitch[?29.Out, org.parboiled2.support.hlist.HNil, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]{
[error]     |  Out = 
[error]     |    org.parboiled2.support.TailSwitch.TailSwitch0[?29.Out, ?29.Out, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]     |      org.parboiled2.support.hlist.HNil
[error]     |    ]
[error]     |}
[error]     |
[error]     |
[error]     |Note: a match type could not be fully reduced:
[error]     |
[error]     |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]     |  , 
[error]     |org.parboiled2.support.hlist.HNil, ?27.Out, ?27.Out, ?28.Out, 
[error]     |  org.parboiled2.support.hlist.HNil
[error]     |]
[error]     |  failed since selector  ?27.Out
[error]     |  does not match  case org.parboiled2.support.hlist.HNil => ?28.Out
[error]     |  and cannot be shown to be disjoint from it either.
[error]     |  Therefore, reduction cannot advance to the remaining case
[error]     |
[error]     |    case _ => org.parboiled2.support.hlist.HNil match {
[error]     |  case ?27.Out => 
[error]     |    org.parboiled2.support.TailSwitch.Prepend0[
[error]     |      org.parboiled2.support.TailSwitch.Reverse1[
[error]     |        org.parboiled2.support.hlist.HNil
[error]     |      ]
[error]     |    , ?28.Out]
[error]     |  case org.parboiled2.support.hlist.HNil => 
[error]     |    ?27.Out match {
[error]     |      case _ :: t => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , org.parboiled2.support.hlist.HNil, ?27.Out, t, ?28.Out, 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |  case h :: t => 
[error]     |    ?27.Out match {
[error]     |      case org.parboiled2.support.hlist.HNil => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?27.Out, org.parboiled2.support.hlist.HNil, ?28.Out, h :: 
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        ]
[error]     |      case _ :: tt => 
[error]     |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]     |          org.parboiled2.support.hlist.HNil
[error]     |        , t, ?27.Out, tt, ?28.Out, h :: org.parboiled2.support.hlist.HNil]
[error]     |    } <: org.parboiled2.support.hlist.HList
[error]     |} <: org.parboiled2.support.hlist.HList
[error] -- [E007] Type Mismatch Error: /src/parboiled2/parboiled-core/src/test/scala/org/parboiled2/DSLTest.scala:39:24 
[error] 39 |  def ComplexRule = rule(capture(DigitAndBool) ~ DigitAndBool ~ capture(DigitAndBool))
[error]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[error]    |Found:    org.parboiled2.Rule[?1.Out, ?2.Out]
[error]    |Required: org.parboiled2.Rule[org.parboiled2.support.hlist.HNil, 
[error]    |  org.parboiled2.support.TailSwitch[Int :: Boolean :: String :: 
[error]    |    org.parboiled2.support.TailSwitch[Int :: org.parboiled2.support.hlist.HNil, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , 
[error]    |      org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, 
[error]    |        ....hlist.HNil
[error]    |      , Boolean :: ...hlist.HNil]{Out = (Boolean :: ....hlist.HNil)}#Out
[error]    |    ]{
[error]    |      Out = (Int :: 
[error]    |        ....support.TailSwitch[....hlist.HNil, ....hlist.HNil, Boolean :: 
[error]    |          ...hlist.HNil
[error]    |        ]{Out = (Boolean :: ....hlist.HNil)}#Out
[error]    |      )
[error]    |    }#Out
[error]    |  , org.parboiled2.support.hlist.HNil, Int :: Boolean :: String :: 
[error]    |    org.parboiled2.support.hlist.HNil
[error]    |  ]{
[error]    |    Out = 
[error]    |      org.parboiled2.support.TailSwitch.TailSwitch0[Int :: Boolean :: String :: 
[error]    |        org.parboiled2.support.TailSwitch[Int :: 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , org.parboiled2.support.hlist.HNil, 
[error]    |          ....TailSwitch[....HNil, ....HNil, Boolean :: ....HNil]{
[error]    |            Out = (Boolean :: ....HNil)
[error]    |          }#Out
[error]    |        ]{
[error]    |          Out = (Int :: 
[error]    |            ....TailSwitch[....HNil, ....HNil, Boolean :: ...HNil]{
[error]    |              Out = (Boolean :: ....HNil)
[error]    |            }#Out
[error]    |          )
[error]    |        }#Out
[error]    |      , Int :: Boolean :: String :: 
[error]    |        org.parboiled2.support.TailSwitch[Int :: 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , org.parboiled2.support.hlist.HNil, 
[error]    |          ....TailSwitch[....HNil, ...HNil, ...Boolean :: ...HNil]{
[error]    |            Out = (Boolean :: ...HNil)
[error]    |          }#Out
[error]    |        ]{
[error]    |          Out = (Int :: 
[error]    |            ...TailSwitch[...HNil, ...HNil, ...Boolean :: ...HNil]{
[error]    |              Out = (Boolean :: ...HNil)
[error]    |            }#Out
[error]    |          )
[error]    |        }#Out
[error]    |      , org.parboiled2.support.hlist.HNil, org.parboiled2.support.hlist.HNil, 
[error]    |        Int
[error]    |       :: Boolean :: String :: org.parboiled2.support.hlist.HNil, 
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      ]
[error]    |  }#Out
[error]    |]
[error]    |
[error]    |where:    ?1 is an unknown value of type org.parboiled2.support.TailSwitch[org.parboiled2.support.hlist.HNil, ?3.Out, 
[error]    |  ?4.Out
[error]    |]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    ]
[error]    |}
[error]    |          ?2 is an unknown value of type org.parboiled2.support.TailSwitch[?5.Out, org.parboiled2.support.hlist.HNil, Int
[error]    |   
[error]    |:: Boolean :: String :: org.parboiled2.support.hlist.HNil]{
[error]    |  Out = 
[error]    |    org.parboiled2.support.TailSwitch.TailSwitch0[?5.Out, ?5.Out, 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil, Int :: Boolean :: String :: 
[error]    |      org.parboiled2.support.hlist.HNil
[error]    |    , org.parboiled2.support.hlist.HNil]
[error]    |}
[error]    |
[error]    |
[error]    |Note: a match type could not be fully reduced:
[error]    |
[error]    |  trying to reduce  org.parboiled2.support.TailSwitch.TailSwitch0[org.parboiled2.support.hlist.HNil
[error]    |  , 
[error]    |org.parboiled2.support.hlist.HNil, ?3.Out, ?3.Out, ?4.Out, 
[error]    |  org.parboiled2.support.hlist.HNil
[error]    |]
[error]    |  failed since selector  ?3.Out
[error]    |  does not match  case org.parboiled2.support.hlist.HNil => ?4.Out
[error]    |  and cannot be shown to be disjoint from it either.
[error]    |  Therefore, reduction cannot advance to the remaining case
[error]    |
[error]    |    case _ => org.parboiled2.support.hlist.HNil match {
[error]    |  case ?3.Out => 
[error]    |    org.parboiled2.support.TailSwitch.Prepend0[
[error]    |      org.parboiled2.support.TailSwitch.Reverse1[
[error]    |        org.parboiled2.support.hlist.HNil
[error]    |      ]
[error]    |    , ?4.Out]
[error]    |  case org.parboiled2.support.hlist.HNil => 
[error]    |    ?3.Out match {
[error]    |      case _ :: t => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , org.parboiled2.support.hlist.HNil, ?3.Out, t, ?4.Out, 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |  case h :: t => 
[error]    |    ?3.Out match {
[error]    |      case org.parboiled2.support.hlist.HNil => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, org.parboiled2.support.hlist.HNil, ?4.Out, h :: 
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        ]
[error]    |      case _ :: tt => 
[error]    |        org.parboiled2.support.TailSwitch.TailSwitch0[
[error]    |          org.parboiled2.support.hlist.HNil
[error]    |        , t, ?3.Out, tt, ?4.Out, h :: org.parboiled2.support.hlist.HNil]
[error]    |    } <: org.parboiled2.support.hlist.HList
[error]    |} <: org.parboiled2.support.hlist.HList
[warn] one warning found
[error] 11 errors found
[warn] one warning found
[error] 11 errors found
[error] (parboiledCoreJVM / Test / compileIncremental) Compilation failed
[error] Total time: 13 s, completed Sep 15, 2021 12:36:18 AM

@smarter
Copy link
Member

smarter commented Dec 21, 2021

The good news is that since #12768 was merged to master yesterday, the above reproducer no longer hangs.

I assume this can be closed then?

@smarter smarter closed this as completed Dec 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:match-types exp:intermediate itype:bug Spree Suitable for a future Spree stat:needs minimization Needs a self contained minimization
Projects
None yet
Development

No branches or pull requests

6 participants