flix / flix

The Flix Programming Language
https://flix.dev/
Other
2.08k stars 150 forks source link

Compiler crash: Type error #7770

Open sockmaster27 opened 1 month ago

sockmaster27 commented 1 month ago

I managed to crash the compiler while I was editing this program, but I can't reproduce it


trait Equatable[t] {
    pub def equals(x: t, y: t): Bool
}

instance Equatable[Option[t]] with Equatable[t] {
    pub def equals(x: Option[t], y: Option[t]): Bool = 
        match (x, y) {
            case (None, None)         => true
            case (Some(v1), Some(v2)) => Equatable.equals(v1, v2)
            case _                    => false
        }
}

instance Equatable[Int32] {
    pub def equals(x: Int32, y: Int32): Bool = x == y
}

@Test
def testOptionEquatable01(): Bool = {
    let x = Some(1);
    let y = Some(1);
    Equatable.equals(x, y)
}

@Test
def testOptionEquatable02(): Bool = {
    let x: Option[Int32] = None;
    let y: Option[Int32] = None;
    Equatable.equals(x, y)
}

This is also highlighted weirdly in VS Code: image

sockmaster27 commented 1 month ago
Crash report
#
# An unexpected error has been detected by the Flix compiler:
#
#   null
#
# This is a bug in the Flix compiler. Please report it here:
#
# https://github.com/flix/flix/issues
#
# -- Flix Compiler --
#
# Flix Version : 0.47.0
#   incremental: All
#
# -- Java Virtual Machine --
#
# JVM Version  : 21.0.1 (2023-10-17)
# JVM Vendor   : Oracle Corporation
# JAVA_HOME    : C:\Program Files\Java\jdk-21
# System       : Windows 11 (10.0)
#
# -- Stack Trace --
java.lang.StackOverflowError
    at ca.uwaterloo.flix.language.phase.unification.Unification$.unifyStarOrArrowTypes(Unification.scala:108)
    at ca.uwaterloo.flix.language.phase.unification.Unification$.unifyTypes(Unification.scala:101)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$4(ConstraintSolver.scala:469)
    at scala.collection.Iterator$$anon$9.next(Iterator.scala:584)
    at scala.collection.IterableOnceOps.collectFirst(IterableOnce.scala:1142)
    at scala.collection.IterableOnceOps.collectFirst$(IterableOnce.scala:1134)
    at scala.collection.AbstractIterator.collectFirst(Iterator.scala:1300)
    at ca.uwaterloo.flix.util.collection.ListOps$.findMap(ListOps.scala:38)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:468)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
    at ca.uwaterloo.flix.util.Result$.traverse(Result.scala:130)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$1(ConstraintSolver.scala:487)
    at ca.uwaterloo.flix.util.Result.flatMap(Result.scala:62)
    at ca.uwaterloo.flix.util.Result.flatMap$(Result.scala:61)
    at ca.uwaterloo.flix.util.Result$Ok.flatMap(Result.scala:94)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.resolveTraitConstraint(ConstraintSolver.scala:451)
    at ca.uwaterloo.flix.language.phase.typer.ConstraintSolver$.$anonfun$resolveTraitConstraint$7(ConstraintSolver.scala:489)
    at ca.uwaterloo.flix.util.Result$.$anonfun$traverse$1(Result.scala:131)
    at scala.collection.immutable.List.foreach(List.scala:333)
magnus-madsen commented 1 month ago

Thanks-- This one is for Matt.