Trying to upgrade shapeless-contrib

24 views
Skip to first unread message

Andrew Headrick

unread,
Mar 6, 2015, 1:48:27 PM3/6/15
to shapel...@googlegroups.com
I am trying to upgrade the shapeless-contrib library. The GenericMacros.deriveProductInstance and GenericMaros.deriveInstace methods have gone away in 2.1.0. I'm have some trouble figuring out how to replace these. Is there an example somewhere showing the previous way and new way to derive needed instances? I looked at derivation.scala in examples but couldn't tell if that was the way to go or not because that file didn't exist before the upgrade. I know there has been a lot of work on the Generic implementation in the most recent version. Although I feel like I have a pretty good grasp on using shapeless, the inner workings are still a bit of a mystery to me and I thought upgrading the library would help my understanding.

-Andrew

Jean-Rémi Desjardins

unread,
Mar 6, 2015, 3:35:38 PM3/6/15
to shapel...@googlegroups.com
I just recently upgraded a json library that was using instance derivation from 2.0 to 2.1: https://github.com/nestorpersist/json/pull/10

But in that case, the macro was never been referenced directly so that might not help you all that much.

I was actually wondering whether shapeless-contrib had been upgraded or not yet, I guess you just answered the question for me. Good luck with the upgrade! I for one would very much like to see it be upgraded!

On Fri, Mar 6, 2015 at 1:48 PM, Andrew Headrick <andrew....@gmail.com> wrote:
I am trying to upgrade the shapeless-contrib library. The GenericMacros.deriveProductInstance and GenericMaros.deriveInstace methods have gone away in 2.1.0. I'm have some trouble figuring out how to replace these. Is there an example somewhere showing the previous way and new way to derive needed instances? I looked at derivation.scala in examples but couldn't tell if that was the way to go or not because that file didn't exist before the upgrade. I know there has been a lot of work on the Generic implementation in the most recent version. Although I feel like I have a pretty good grasp on using shapeless, the inner workings are still a bit of a mystery to me and I thought upgrading the library would help my understanding.

-Andrew

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

Andrew Headrick

unread,
Mar 11, 2015, 10:59:48 PM3/11/15
to shapel...@googlegroups.com
I decided to take another stab at the upgrade and although I have made some progress I currently find myself at an impenetrable impasse. I think I have figured out how to upgrade the typeclasses appropriately.

https://github.com/bigtoast/shapeless-contrib/blob/master/scalacheck/main/scala/package.scala#L12

shows upgrading the typeclasses for Arbitrary and Shrink in the scalacheck subproject.

The problem is implicit typeclass derivation which I can't get to work right. For a given typeclass companion I an add an

import MyTypeClassCompanion._

and a typeclass will be derived ( thanks to the implicit deriveInstance method in ProductTypeClassCompanion ). However if I need more than one typeclass, i.e. Shrink and Arbitrary, adding both imports breaks implicit resolution and no typeclasses are derived.

I experimented with two versions of an implicit derive method

implicit def deriveArbitrary[T,F](
    implicit gen :Generic.Aux[T,F], lzy :Lazy[Arbitrary[F]] ) :Arbitrary[T] = ArbitraryCompanion.deriveInstance[T,F]

and

implicit def deriveArbitrary[T,F](
    implicit ev :TypeClassCompanion[Arbitrary],
    gen :Generic.Aux[T,F], lzy :Lazy[Arbitrary[F]] ) :Arbitrary[T] = ev.deriveInstance[T,F]

In theory these methods would negate the need for the explicit "import ArbitraryCompanion._" which also solves the problem when more than one typeclass is needed. However when either of these methods is defined the project doesn't ever finish compiling. There is an endless loop when compiling the test code. Here is an excerpt of a thread dump ( full dump below ) that does show calls to
    at shapeless.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)

My gut tells me this has to do with Lazy but since I really don't understand where Lazy implementations come from I am finding it hard to make progress.

Using just the scalacheck subproject (https://github.com/bigtoast/shapeless-contrib) illustrates the issues fairly cleanly because there is just one source file and one test.

Any pointers or advice would be much appreciated.

Thanks,
Andrew

full thread dump.

2015-03-11 17:42:33
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.20-b23 mixed mode):

"RMI TCP Connection(3)-192.168.1.125" #71 daemon prio=9 os_prio=31 tid=0x00007fe42e4e9000 nid=0x3b07 runnable [0x0000000119c4c000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000007aae53d08> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:539)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
    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:
    - <0x00000007aae4e168> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Connection(2)-192.168.1.125" #70 daemon prio=9 os_prio=31 tid=0x00007fe4309df800 nid=0x3a07 runnable [0x0000000119b49000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000007aae4f598> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:539)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
    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:
    - <0x00000007aae4dd80> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"JMX server connection timeout 69" #69 daemon prio=9 os_prio=31 tid=0x00007fe431004000 nid=0x5607 in Object.wait() [0x0000000118976000]
   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 <0x00000007aade47f0> (a [I)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" #68 daemon prio=9 os_prio=31 tid=0x00007fe430cc2000 nid=0x5717 waiting on condition [0x0000000118873000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000007aada1b00> (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(1)-192.168.1.125" #67 daemon prio=9 os_prio=31 tid=0x00007fe430aa4000 nid=0x651f runnable [0x0000000118227000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
    - locked <0x00000007aadd5580> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:83)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:539)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
    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:
    - <0x00000007aadd27d0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI TCP Accept-0" #66 daemon prio=9 os_prio=31 tid=0x00007fe430536000 nid=0x5d1f runnable [0x0000000117ce9000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
    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:389)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:361)
    at java.lang.Thread.run(Thread.java:745)

   Locked ownable synchronizers:
    - None

"Attach Listener" #64 daemon prio=9 os_prio=31 tid=0x00007fe42fdb2800 nid=0x661b waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"pool-7-thread-8" #62 prio=5 os_prio=31 tid=0x00007fe42f051000 nid=0x6117 runnable [0x0000000117e32000]
   java.lang.Thread.State: RUNNABLE
    at scala.collection.AbstractIterator.<init>(Iterator.scala:1202)
    at scala.collection.immutable.VectorIterator.<init>(Vector.scala:653)
    at scala.collection.immutable.Vector.iterator(Vector.scala:96)
    at scala.collection.immutable.Vector.iterator(Vector.scala:62)
    at scala.collection.IterableLike$class.exists(IterableLike.scala:77)
    at scala.collection.AbstractIterable.exists(Iterable.scala:54)
    at scala.collection.SeqLike$class.contains(SeqLike.scala:401)
    at scala.collection.AbstractSeq.contains(Seq.scala:41)
    at scala.reflect.internal.Definitions$DefinitionsClass.isFunctionSymbol(Definitions.scala:581)
    at scala.reflect.internal.Definitions$DefinitionsClass.isFunctionTypeDirect(Definitions.scala:651)
    at scala.reflect.internal.Types$TypeRef.customToString(Types.scala:2277)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2304)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:349)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at java.lang.String.valueOf(String.java:2981)
    at scala.collection.mutable.StringBuilder.append(StringBuilder.scala:200)
    at scala.collection.TraversableOnce$$anonfun$addString$1.apply(TraversableOnce.scala:344)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableOnce$class.addString(TraversableOnce.scala:342)
    at scala.collection.AbstractTraversable.addString(Traversable.scala:104)
    at scala.collection.TraversableOnce$class.mkString(TraversableOnce.scala:308)
    at scala.collection.AbstractTraversable.mkString(Traversable.scala:104)
    at scala.reflect.internal.Types$TypeRef.argsString(Types.scala:2254)
    at scala.reflect.internal.Types$TypeRef.safeToString(Types.scala:2306)
    at scala.reflect.internal.tpe.TypeToStrings$class.typeToString(TypeToStrings.scala:43)
    at scala.reflect.internal.SymbolTable.typeToString(SymbolTable.scala:16)
    at scala.reflect.internal.Types$Type.toString(Types.scala:927)
    at scala.tools.nsc.typechecker.TypeDiagnostics$TypeDiag.string_$eq$eq(TypeDiagnostics.scala:334)
    at scala.tools.nsc.typechecker.TypeDiagnostics$$anonfun$withDisambiguation$2$$anonfun$apply$8.apply(TypeDiagnostics.scala:423)
    at scala.tools.nsc.typechecker.TypeDiagnostics$$anonfun$withDisambiguation$2$$anonfun$apply$8.apply(TypeDiagnostics.scala:405)
    at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:778)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:777)
    at scala.tools.nsc.typechecker.TypeDiagnostics$$anonfun$withDisambiguation$2.apply(TypeDiagnostics.scala:405)
    at scala.util.control.Exception$Catch.apply(Exception.scala:103)
    at scala.tools.nsc.typechecker.TypeDiagnostics$class.withDisambiguation(TypeDiagnostics.scala:404)
    at scala.tools.nsc.Global$$anon$1.withDisambiguation(Global.scala:463)
    at scala.tools.nsc.typechecker.TypeDiagnostics$class.foundReqMsg(TypeDiagnostics.scala:284)
    at scala.tools.nsc.Global$$anon$1.foundReqMsg(Global.scala:463)
    at scala.tools.nsc.typechecker.ContextErrors$InferencerContextErrors$InferErrorGen$.PolymorphicExpressionInstantiationError(ContextErrors.scala:1025)
    at scala.tools.nsc.typechecker.Infer$Inferencer.substExpr(Infer.scala:965)
    at scala.tools.nsc.typechecker.Infer$Inferencer.inferExprInstance(Infer.scala:944)
    at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:812)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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)

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

"pool-7-thread-4" #58 prio=5 os_prio=31 tid=0x00007fe42fdb2000 nid=0x5b1b runnable [0x0000000117840000]
   java.lang.Thread.State: RUNNABLE
    at scala.reflect.internal.Names$class.equals(Names.scala:60)
    at scala.reflect.internal.Names$class.body$1(Names.scala:102)
    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:3046)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3150)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$62.apply(Typers.scala:3150)
    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:3150)
    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:627)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onSuccess(Macros.scala:639)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:578)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1349)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:38)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:901)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:929)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:986)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1375)
    at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:73)
    at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:463)
    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:463)
    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.DerivationContext$class.resolveInstance$1(lazy.scala:163)
    at shapeless.DerivationContext$class.deriveInstance(lazy.scala:175)
    at shapeless.DerivationContext$$anon$1.deriveInstance(lazy.scala:96)
    at shapeless.LazyMacros$.deriveInstance(lazy.scala:85)
    at shapeless.LazyMacros.mkLazyImpl(lazy.scala:59)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    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:755)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$$anon$4.transform(Macros.scala:890)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandAll(Macros.scala:894)
    at scala.tools.nsc.Global$$anon$1.macroExpandAll(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:740)
    at scala.tools.nsc.Global$$anon$1.macroExpandWithRuntime(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:572)
    at scala.tools.nsc.typechecker.Macros$MacroExpander$$anonfun$expand$1.apply(Macros.scala:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    at scala.tools.nsc.typechecker.Macros$DefMacroExpander.onDelayed(Macros.scala:699)
    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:565)
    at scala.tools.nsc.Global.withInfoLevel(Global.scala:212)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.expand(Macros.scala:564)
    at scala.tools.nsc.typechecker.Macros$MacroExpander.apply(Macros.scala:552)
    at scala.tools.nsc.typechecker.Macros$class.standardMacroExpand(Macros.scala:716)
    at scala.tools.nsc.Global$$anon$1.standardMacroExpand(Global.scala:463)
    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:463)
    at scala.tools.nsc.typechecker.Macros$class.macroExpand(Macros.scala:709)
    at scala.tools.nsc.Global$$anon$1.macroExpand(Global.scala:463)
    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:645)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:582)
    at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:451)

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

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

   Locked ownable synchronizers:
    - None

"C1 CompilerThread3" #8 daemon prio=9 os_prio=31 tid=0x00007fe42b00e000 nid=0x4f03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007fe42b00d800 nid=0x4d03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007fe42b82a000 nid=0x4b03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007fe42b81d800 nid=0x4903 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

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

   Locked ownable synchronizers:
    - None

"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fe42b802000 nid=0x3503 in Object.wait() [0x0000000113f1a000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:142)
    - locked <0x000000078000e660> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:158)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

   Locked ownable synchronizers:
    - None

"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fe42c059800 nid=0x3303 runnable [0x0000000113e17000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.Object.notifyAll(Native Method)
    at java.lang.ref.ReferenceQueue.enqueue(ReferenceQueue.java:73)
    - locked <0x0000000782b6d328> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:171)

   Locked ownable synchronizers:
    - None

"main" #1 prio=5 os_prio=31 tid=0x00007fe42d002800 nid=0xf07 waiting on condition [0x00000001045f3000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x000000078125f8b8> (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:196)
    at sbt.Execute.next$1(Execute.scala:88)
    at sbt.Execute.processAll(Execute.scala:91)
    at sbt.Execute.runKeep(Execute.scala:69)
    at sbt.EvaluateTask$.liftedTree1$1(EvaluateTask.scala:344)
    at sbt.EvaluateTask$.run$1(EvaluateTask.scala:343)
    at sbt.EvaluateTask$.runTask(EvaluateTask.scala:363)
    at sbt.Aggregation$$anonfun$3.apply(Aggregation.scala:67)
    at sbt.Aggregation$$anonfun$3.apply(Aggregation.scala:65)
    at sbt.EvaluateTask$.withStreams(EvaluateTask.scala:294)
    at sbt.Aggregation$.timedRun(Aggregation.scala:65)
    at sbt.Aggregation$.runTasks(Aggregation.scala:74)
    at sbt.Aggregation$$anonfun$applyTasks$1.apply(Aggregation.scala:34)
    at sbt.Aggregation$$anonfun$applyTasks$1.apply(Aggregation.scala:33)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
    at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
    at sbt.Aggregation$$anonfun$evaluatingParser$4$$anonfun$apply$5.apply(Aggregation.scala:159)
    at sbt.Aggregation$$anonfun$evaluatingParser$4$$anonfun$apply$5.apply(Aggregation.scala:158)
    at sbt.Act$$anonfun$sbt$Act$$actParser0$1$$anonfun$sbt$Act$$anonfun$$evaluate$1$1$$anonfun$apply$10.apply(Act.scala:247)
    at sbt.Act$$anonfun$sbt$Act$$actParser0$1$$anonfun$sbt$Act$$anonfun$$evaluate$1$1$$anonfun$apply$10.apply(Act.scala:244)
    at sbt.Command$.process(Command.scala:95)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
    at sbt.State$$anon$1.process(State.scala:179)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.MainLoop$.next(MainLoop.scala:100)
    at sbt.MainLoop$.run(MainLoop.scala:93)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:71)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:66)
    at sbt.Using.apply(Using.scala:25)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:66)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:49)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:33)
    at sbt.MainLoop$.runLogged(MainLoop.scala:25)
    at sbt.StandardMain$.runManaged(Main.scala:57)
    at sbt.xMain.run(Main.scala:29)
    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=31 tid=0x00007fe42c055000 nid=0x3103 runnable

"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007fe42c005000 nid=0x10f runnable

"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007fe42c006000 nid=0x1907 runnable

"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007fe42d00f000 nid=0x2503 runnable

"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007fe42d00f800 nid=0x2703 runnable

"GC task thread#4 (ParallelGC)" os_prio=31 tid=0x00007fe42c006800 nid=0x2903 runnable

"GC task thread#5 (ParallelGC)" os_prio=31 tid=0x00007fe42c007000 nid=0x2b03 runnable

"GC task thread#6 (ParallelGC)" os_prio=31 tid=0x00007fe42c007800 nid=0x2d03 runnable

"GC task thread#7 (ParallelGC)" os_prio=31 tid=0x00007fe42c008800 nid=0x2f03 runnable

"VM Periodic Task Thread" os_prio=31 tid=0x00007fe42c07a000 nid=0x5303 waiting on condition

JNI global references: 142
Reply all
Reply to author
Forward
0 new messages