Exception in thread "main" java.lang.Error: assertion failed: singleton class Foo
at scala.Predef$.assert(Predef.scala:144)
at scala.tools.nsc.symtab.Symbols$TypeSymbol$class.setInfo(Symbols.scala:874)
at scala.tools.nsc.symtab.Symbols$TypeSymbol$class.setInfo(Symbols.scala:869)
at scala.tools.nsc.symtab.Symbols$Symbol$class.setInfo(Symbols.scala:303)
at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scala:214)
at scala.tools.nsc.symtab.Symbols$Symbol$$anon$20.apply(Symbols.scala:288)
at scala.tools.nsc.symtab.Symbols$Symbol$$anon$20.apply(Symbols.scala:286)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.symtab.Symbols$Symbol$class.info(Symbols.scala:286)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$implicitsOfClass$0(T\
ypers.scala:1497)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$implicitsOfClass$0(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$75.apply(Typers.scala:1493)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$75.apply(Typers.scala:1493)
at scala.List$class.map(List.scala:551)
at scala.List$class.map(List.scala:551)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$implicitsOfType$0(Ty\
pers.scala:1493)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$inferImplicit(Typers\
.scala:1501)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$inferView(Typers.sca\
la:51)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$inferView(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$3.isCoercible(Typers.scala:45)
at scala.tools.nsc.typechecker.Infer$Inferencer$class.isCompatible(Infer.scala:243)
at scala.tools.nsc.typechecker.Infer$Inferencer$class.isApplicable(Infer.scala:366)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$66.apply(Typers.scala:1229)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$66.apply(Typers.scala:1228)
at scala.List$class.filter(List.scala:591)
at scala.List$class.filter(List.scala:594)
at scala.tools.nsc.symtab.Symbols$Symbol$class.filter(Symbols.scala:440)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1228)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
at scala.tools.nsc.typechecker.Typers$Typer$class.typedDefDef(Typers.scala:665)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1056)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:801)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:791)
at scala.List$.mapConserve(List.scala:227)
at scala.List$.mapConserve(List.scala:229)
at scala.List$.mapConserve(List.scala:229)
at scala.tools.nsc.typechecker.Typers$Typer$class.typedStats(Typers.scala:791)
at scala.tools.nsc.typechecker.Typers$Typer$class.typedTemplate(Typers.scala:571)
at scala.tools.nsc.typechecker.Typers$Typer$class.typedClassDef(Typers.scala:513)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1047)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:801)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:791)
at scala.List$.mapConserve(List.scala:227)
at scala.tools.nsc.typechecker.Typers$Typer$class.typedStats(Typers.scala:791)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1043)
at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$1.apply(Analyzer.scala:39)
at scala.tools.nsc.Global$GlobalPhase$class.applyPhase(Global.scala:170)
at scala.tools.nsc.Global$GlobalPhase$$anon$7.apply(Global.scala:162)
at scala.tools.nsc.Global$GlobalPhase$$anon$7.apply(Global.scala:162)
at scala.Iterator$class.foreach(Iterator.scala:262)
at scala.tools.nsc.Global$GlobalPhase$class.run(Global.scala:162)
at scala.tools.nsc.Global$Run$class.compileSources(Global.scala:339)
at scala.tools.nsc.Global$Run$$anon$20.apply(Global.scala:397)
at scala.tools.nsc.Global$Run$$anon$20.apply(Global.scala:397)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.Global$Run$class.compile(Global.scala:396)
at scala.tools.nsc.Main$$anon$4.apply(Main.scala:55)
at scala.tools.nsc.Main$$anon$4.apply(Main.scala:48)
at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
at scala.runtime.RunTime.tryCatch(RunTime.java:79)
at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
at scala.tools.nsc.Main$.process(Main.scala:48)
at scala.tools.nsc.Main$.main(Main.scala:67)
at scala.tools.nsc.Main.main(Main.scala:66)
|