effekt-lang / effekt-lang/effekt

StackOverflowError/RangeError: Maximum call stack size exceeded

Open
#1,197 0 comments 0 reactions 0 assignees View on GitHub
area:typer bug
Dominant language
Scala
Stars
469
Forks
41
Avg merge
1d 16h
Merged PRs (30d)
23

Description

The following code (which results in a recursive type `T = Unit => TypeWrapper[T] at {}`):
```effekt
interface TypeTricks { def finish(): Unit }
record TypeWrapper[T]()

def typeOf[T](t: T): TypeWrapper[T] = TypeWrapper()

def helloWorld() = try {
TypeWrapper()
} with TypeTricks {
def finish() = {
typeOf(box resume)
}
}
```
crashes the playground compiler with:
```
[info] module0.effekt:18:14: Effekt Compiler Crash: scala.scalajs.js.JavaScriptException: RangeError: Maximum call stack size exceeded
[info] module0.effekt:18:14: scala.scalajs.js.JavaScriptException: RangeError: Maximum call stack size exceeded
at e.eg(https://effekt-lang.org/dist/ide.chunk.js:1:1488203)
at e.Fh(https://effekt-lang.org/dist/ide.chunk.js:1:992908)
at {anonymous}()(https://effekt-lang.org/dist/ide.chunk.js:1:666921)
at oN(https://effekt-lang.org/dist/ide.chunk.js:1:667059)
at iN(https://effekt-lang.org/dist/ide.chunk.js:1:666776)
at tN(https://effekt-lang.org/dist/ide.chunk.js:1:666254)
at tN(https://effekt-lang.org/dist/ide.chunk.js:1:666103)
at {anonymous}()(https://effekt-lang.org/dist/ide.chunk.js:1:197781)
at Pu(https://effekt-lang.org/dist/ide.chunk.js:1:198052)
at n(https://effekt-lang.org/dist/ide.chunk.js:1:196218)
```
and the real compiler with:
```
[info] /Users/kyay10/IdeaProjects/EffektPlayground/src/reproducer.effekt:10:12: Effekt Compiler Crash: java.lang.StackOverflowError
typeOf(box resume)
^^^^^^^^^^
[info] /Users/kyay10/IdeaProjects/EffektPlayground/src/reproducer.effekt:10:12: java.lang.StackOverflowError
at scala.collection.mutable.Growable.addAll(Growable.scala:60)
at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
at scala.collection.immutable.MapBuilderImpl.addAll(Map.scala:710)
at scala.collection.immutable.Map$.from(Map.scala:661)
at scala.collection.immutable.Map$.from(Map.scala:172)
at scala.collection.MapFactoryDefaults.fromSpecific(Iterable.scala:1009)
at scala.collection.MapFactoryDefaults.fromSpecific$(Iterable.scala:1009)
at scala.collection.AbstractMap.fromSpecific(Map.scala:420)
at scala.collection.AbstractMap.fromSpecific(Map.scala:420)
at scala.collection.IterableOps.filterNot(Iterable.scala:404)
at scala.collection.IterableOps.filterNot$(Iterable.scala:404)
at scala.collection.AbstractIterable.filterNot(Iterable.scala:935)
at effekt.typer.Substitutions.without(Substitution.scala:40)
at effekt.typer.Substitutions.substitute(Substitution.scala:76)
at effekt.typer.Substitutions.substitute(Substitution.scala:70)
at effekt.typer.Substitutions.substitute(Substitution.scala:60)
at effekt.typer.Substitutions.substitute$$anonfun$4(Substitution.scala:58)
at scala.collection.immutable.List.map(List.scala:247)
at effekt.typer.Substitutions.substitute(Substitution.scala:58)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:107)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
... // Omitted due to GH body size limits
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)
at effekt.typer.Unification.requireLowerBound$(Unification.scala:42)
at effekt.context.Context.requireLowerBound(Context.scala:41)
at effekt.typer.Unification.requireEqual(Unification.scala:241)
at effekt.typer.Unification.requireEqual$(Unification.scala:42)
at effekt.context.Context.requireEqual(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:47)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes$$anonfun$1(TypeComparer.scala:59)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:334)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:59)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyFunctionTypes(TypeComparer.scala:113)
at effekt.typer.TypeUnifier.unifyFunctionTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyFunctionTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyBlockTypes(TypeComparer.scala:70)
at effekt.typer.TypeUnifier.unifyBlockTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyBlockTypes(Context.scala:41)
at effekt.typer.TypeUnifier.unifyValueTypes(TypeComparer.scala:62)
at effekt.typer.TypeUnifier.unifyValueTypes$(TypeComparer.scala:13)
at effekt.context.Context.unifyValueTypes(Context.scala:41)
at effekt.typer.Unification.requireLowerBound$$anonfun$1(Unification.scala:245)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at effekt.typer.Constraints.learnType$1$$anonfun$1(Constraints.scala:186)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.Option.foreach(Option.scala:437)
at effekt.typer.Constraints.learnType$1(Constraints.scala:186)
at effekt.typer.Constraints.learn(Constraints.scala:208)
at effekt.typer.Unification.requireLowerBound(Unification.scala:245)

typeOf(box resume)
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.