Very long (perhaps endless?) compilation

93 views
Skip to first unread message

harv...@cse.ohio-state.edu

unread,
Aug 2, 2016, 10:46:09 AM8/2/16
to scala-internals
Dear Scala Internals,

I have stumbled on a case where compilation appears to never finish.  The culprit appears to be related to macros, and might be attributable to the "argonaut-shapeless" library.  If I should route this report to that project, please let me know.

The code base that I am working on is not open source (yet - we will probably open source it in a few months), but it is hosted on GitLab as a private repository and I can share it with folks as needed.

Unfortunately, the VisualVM snapshot is strangely not working when I try to capture profiling information, so I took a screenshot of CPU sampling:



Here is a thread dump:


2016-08-02 10:39:56
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.45-b02 mixed mode):

"RMI TCP Connection(3)-132.174.124.27" #36 daemon prio=5 os_prio=0 tid=0x000000005b19e800 nid=0x1fc8 runnable [0x0000000064abe000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x000000008ae84038> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:550)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/298079323.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x000000008ae841f8> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Connection(idle)" #35 daemon prio=5 os_prio=0 tid=0x000000005b19c000 nid=0x2b38 waiting on condition [0x0000000064f4e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000088c68d68> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"JMX server connection timeout 34" #34 daemon prio=5 os_prio=0 tid=0x000000005b19b800 nid=0x2fa4 in Object.wait() [0x0000000064bef000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
    - locked <0x0000000088c69298> (a [I)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" #33 daemon prio=5 os_prio=0 tid=0x000000005b19a800 nid=0x323c waiting on condition [0x000000006483e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000088cabeb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"RMI TCP Connection(7)-132.174.124.27" #32 daemon prio=5 os_prio=0 tid=0x000000005b19a000 nid=0x2a4c runnable [0x000000006496e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:170)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000000b8a4aeb0> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:550)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$254(TCPTransport.java:683)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/298079323.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - <0x0000000088c68e58> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Accept-0" #31 daemon prio=5 os_prio=0 tid=0x000000005b199000 nid=0x20f0 runnable [0x000000006470e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.DualStackPlainSocketImpl.accept0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
    - locked <0x0000000088cac348> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:545)
    at java.net.ServerSocket.accept(ServerSocket.java:513)
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"pool-4-thread-3" #26 prio=5 os_prio=0 tid=0x000000005c35a000 nid=0x2988 runnable [0x000000005f84c000]
   java.lang.Thread.State: RUNNABLE
    at scala.reflect.internal.Names$class.body$1(Names.scala:103)
    at scala.reflect.internal.Names$class.newTermName(Names.scala:127)
    at scala.reflect.internal.SymbolTable.newTermName(SymbolTable.scala:16)
    at scala.reflect.internal.Names$class.newTermName(Names.scala:135)
    at scala.reflect.internal.SymbolTable.newTermName(SymbolTable.scala:16)
    at scala.reflect.internal.StdNames$TermNames.localDummyName(StdNames.scala:495)
    at scala.reflect.internal.Symbols$Symbol.newLocalDummy(Symbols.scala:278)
    at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1866)
    at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1762)
    at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5309)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5452)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3047)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
    at scala.collection.immutable.List.loop$1(List.scala:173)
    at scala.collection.immutable.List.mapConserve(List.scala:189)
    at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151)
    at scala.tools.nsc.typechecker.Typers$Typer.typedBlock(Typers.scala:2381)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$typedOutsidePatternMode$1$1.apply(Typers.scala:5318)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$typedOutsidePatternMode$1$1.apply(Typers.scala:5318)
    at scala.tools.nsc.typechecker.Typers$Typer.typedOutsidePatternMode$1(Typers.scala:5317)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5353)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.typecheck$1(Macros.scala:635)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onSuccess(Macros.scala:647)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:586)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1351)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:200)
    at shapeless.LazyMacrosRef.mkLazyImpl(lazyref.scala:34)
    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1351)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:200)
    at shapeless.LazyMacrosRef.mkLazyImpl(lazyref.scala:34)
    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:898)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:902)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:748)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:707)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:594)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:560)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:724)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:400)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$$anon$10.default(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.invoke(AnalyzerPlugins.scala:369)
    at scala.tools.nsc.typechecker.AnalyzerPlugins$class.pluginsMacroExpand(AnalyzerPlugins.scala:397)
    at scala.tools.nsc.Global$$anon$1.pluginsMacroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:717)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.vanillaAdapt$1(Typers.scala:1111)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1166)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1139)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:149)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:823)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1162)
    at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1159)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:647)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:584)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:453)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:903)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:931)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:988)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1377)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$4.apply(Implicits.scala:97)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$$anonfun$2.apply(Implicits.scala:95)
    at scala.tools.nsc.typechecker.Implicits$class.wrapper$1(Implicits.scala:96)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:97)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:462)
    at scala.reflect.macros.contexts.Typers$class.inferImplicitValue(Typers.scala:41)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
    at shapeless.LazyMacros$DerivationContext$State$.resolveInstance(lazy.scala:301)
    at shapeless.LazyMacros$DerivationContext.resolve0(lazy.scala:428)
    at shapeless.LazyMacros$DerivationContext.resolve(lazy.scala:420)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:504)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1$$anonfun$apply$4.apply(lazy.scala:502)
    at scala.util.Either$LeftProjection.flatMap(Either.scala:363)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at shapeless.LazyMacros$DerivationContext$$anonfun$derive$1.apply(lazy.scala:502)
    at scala.Option.getOrElse(Option.scala:121)
    at shapeless.LazyMacros$DerivationContext.derive(lazy.scala:501)
    at shapeless.LazyMacros$DerivationContext$State$.deriveInstance(lazy.scala:334)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:599)
    at shapeless.LazyMacros.mkImpl(lazy.scala:213)
    at shapeless.LazyMacros.mkStrictImpl(lazy.scala:206)
    at shapeless.LazyMacrosRef.mkStrictImpl(lazyref.scala:39)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
    at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:763)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:462)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:580)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:573)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:211)

   Locked ownable synchronizers:
    - <0x00000000824ab4d8> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00000000574af800 nid=0x2c74 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000000005884b000 nid=0x14d0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x0000000058849800 nid=0x2038 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000058844800 nid=0x43c waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x00000000574a4800 nid=0x1380 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x00000000574a3800 nid=0xf68 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000057447800 nid=0x3574 in Object.wait() [0x000000005883f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x0000000080009bb0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

   Locked ownable synchronizers:
    - None

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x0000000057440800 nid=0x2a10 in Object.wait() [0x00000000586cf000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
    - locked <0x000000008003afc0> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
    - None

"main" #1 prio=5 os_prio=0 tid=0x0000000001ff8000 nid=0x36cc waiting on condition [0x000000000239d000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000082506910> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at java.util.concurrent.ExecutorCompletionService.take(ExecutorCompletionService.java:193)
    at sbt.ConcurrentRestrictions$$anon$4.take(ConcurrentRestrictions.scala:188)
    at sbt.Execute.next$1(Execute.scala:83)
    at sbt.Execute.processAll(Execute.scala:86)
    at sbt.Execute.runKeep(Execute.scala:66)
    at sbt.EvaluateTask$.liftedTree1$1(EvaluateTask.scala:342)
    at sbt.EvaluateTask$.run$1(EvaluateTask.scala:341)
    at sbt.EvaluateTask$.runTask(EvaluateTask.scala:361)
    at sbt.Aggregation$$anonfun$3.apply(Aggregation.scala:64)
    at sbt.Aggregation$$anonfun$3.apply(Aggregation.scala:62)
    at sbt.EvaluateTask$.withStreams(EvaluateTask.scala:293)
    at sbt.Aggregation$.timedRun(Aggregation.scala:62)
    at sbt.Aggregation$.runTasks(Aggregation.scala:71)
    at sbt.Aggregation$$anonfun$applyTasks$1.apply(Aggregation.scala:32)
    at sbt.Aggregation$$anonfun$applyTasks$1.apply(Aggregation.scala:31)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
    at sbt.Aggregation$$anonfun$evaluatingParser$4$$anonfun$apply$5.apply(Aggregation.scala:153)
    at sbt.Aggregation$$anonfun$evaluatingParser$4$$anonfun$apply$5.apply(Aggregation.scala:152)
    at sbt.Act$$anonfun$sbt$Act$$actParser0$1$$anonfun$sbt$Act$$anonfun$$evaluate$1$1$$anonfun$apply$10.apply(Act.scala:244)
    at sbt.Act$$anonfun$sbt$Act$$actParser0$1$$anonfun$sbt$Act$$anonfun$$evaluate$1$1$$anonfun$apply$10.apply(Act.scala:241)
    at sbt.Command$.process(Command.scala:92)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
    at sbt.State$$anon$1.process(State.scala:184)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.MainLoop$.next(MainLoop.scala:98)
    at sbt.MainLoop$.run(MainLoop.scala:91)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
    at sbt.MainLoop$.runLogged(MainLoop.scala:24)
    at sbt.StandardMain$.runManaged(Main.scala:53)
    at sbt.xMain.run(Main.scala:28)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:18)
    at xsbt.boot.Boot$.runImpl(Boot.scala:41)
    at xsbt.boot.Boot$.main(Boot.scala:17)
    at xsbt.boot.Boot.main(Boot.scala)

   Locked ownable synchronizers:
    - None

"VM Thread" os_prio=2 tid=0x000000005743a800 nid=0x32c4 runnable

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x000000000200d000 nid=0x34b0 runnable

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x000000000200e800 nid=0x27b8 runnable

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002010000 nid=0x1fec runnable

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002011800 nid=0x1624 runnable

"VM Periodic Task Thread" os_prio=2 tid=0x00000000588e0800 nid=0x1d9c waiting on condition

JNI global references: 312


Here is my "build.sbt" file:

scalacOptions ++= Seq(
  "-Xlint",
  "-deprecation",
  "-Xfatal-warnings"
)

resolvers ++= Seq(
  Resolver.sonatypeRepo("releases"),
  Resolver.sonatypeRepo("snapshots")
)

lazy val root = (project in file("."))
    .settings(
        name := "top-secret-doodad-thingy",
        version := "0.1",
        scalaVersion := "2.11.8",
        libraryDependencies ++= Seq(
          "org.typelevel" %% "cats" % "0.6.1",
      "com.chuusai" %% "shapeless" % "2.3.1",
      "io.argonaut" %% "argonaut" % "6.1" withSources(),
      "com.github.alexarchambault" %% "argonaut-shapeless_6.1" % "1.1.1"
        )
    )


Please let me know if I can provide anything else.

Thanks!

William
Auto Generated Inline Image 1

Jason Zaugg

unread,
Aug 2, 2016, 11:06:43 AM8/2/16
to scala-internals
Try -Xlog-implicits and -Ytyper-debug to see what parrot your code triggers the enormous implicits search (which is considering an implicit macro in shapeless afaict at the time of the thread dump)

Jason Zaugg

unread,
Aug 2, 2016, 11:08:24 AM8/2/16
to scala-internals
*Part of your code

Although if you do have a parrot in your code, I'd recommend to remove that too :)

harv...@cse.ohio-state.edu

unread,
Aug 2, 2016, 11:51:02 AM8/2/16
to scala-internals
Thank you Jason.  The good news is that compilation finished (using SBT...but the Eclipse plugin is another story...), so this may not be a bug after all.  Whew!

Currently I am exploring the design space of an algorithm using some FP and type-level techniques, and this tends to get me into trouble with the compiler.

The outputs of -Xlog-implicits and -Ytyper-debug are available here:

https://www.dropbox.com/s/fcxyun3u6lws7f2/log-err.tar.gz?dl=0
https://www.dropbox.com/s/60e03v5lrayjnho/log.tar.gz?dl=0

If there is anything else I can provide, please let me know.

Cheers,

William
...

Jason Zaugg

unread,
Aug 2, 2016, 12:43:54 PM8/2/16
to scala-internals
The goal is to reduce the number of `xxxx is not a valid implicit value for ... because` log lines. Each of those represents the equivalent of an extra line of code in your project that was typechecked and discarded.

To do this, you might be best to try to create a more minimal example representative of part of your code the incurs many of those log lines, and ask for help from the community using the same set of libraries (perhaps: https://gitter.im/milessabin/shapeless)

-jason

--
You received this message because you are subscribed to the Google Groups "scala-internals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-interna...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Miles Sabin

unread,
Aug 3, 2016, 4:29:03 PM8/3/16
to scala-internals
On Tue, Aug 2, 2016 at 5:43 PM, Jason Zaugg <jza...@gmail.com> wrote:
> To do this, you might be best to try to create a more minimal example representative of part of your code the incurs many of those log lines, and ask for help from the community using the same set of libraries (perhaps: https://gitter.im/milessabin/shapeless)

Both excellent suggestions.

Cheers,


Miles

--
Miles Sabin
tel: +44 7813 944 528
skype: milessabin
gtalk: mi...@milessabin.com
http://milessabin.com/blog
http://twitter.com/milessabin
Reply all
Reply to author
Forward
0 new messages