title: Scala Quill can't find implicit encoder for long
body: <p>Following code works as expected (Laptop is a case class) :</p>
  
  <pre><code>def main(args: Array[String]): 
  
   implicit val ctx = new SqlMirrorContext(MirrorSqlDialect, Literal)
   import ctx._
  
   val laptops = quote {
     querySchema[Laptop]("laptops")
   }
  
   implicit val laptopInsertMeta = insertMeta[Laptop](_.id)
  
   val q = quote {
     laptops.insert(lift(Laptop(...)))
   }
   ctx.run(q)
  
  }
  </code></pre>
  
  <p>But this (on-the-way-to-refactoring) version fails to compile:</p>
  
  <pre><code>class LaptopDaoQuill[I &lt;: Idiom, N &lt;: NamingStrategy](implicit ctx: Context[I, N])  {
  
   import ctx._
  
   def insert(obj: Laptop) = {
   val laptops = quote {
     querySchema[Laptop]("laptops")
   }
   implicit val personInsertMeta = insertMeta[Laptop](_.id)
  
   val q = quote {
      laptops.insert(lift(obj))
   }
   ctx.run(q)
   }
  }
  
  object Main {
  def main(args: Array[String]): Unit = {
    implicit val ctx = new SqlMirrorContext(MirrorSqlDialect, Literal)
  
    val laptopDao = new LaptopDaoQuill
  
    laptopDao.insert(Laptop(...))
  }
  </code></pre>
  
  <p>With following errors:</p>
  
  <p>Error:(29, 55) Can't find implicit <code>Encoder[Long]</code>. Please, do one of the following things:
  1. ensure that implicit <code>Encoder[Long]</code> is provided and there are no other conflicting implicits;
  2. make <code>Long</code> <code>Embedded</code> case class or <code>AnyVal</code>.
  implicit val personInsertMeta = insertMetaLaptop</p>
  
  <p>Error:(32, 21) Can't find an implicit <code>InsertMeta</code> for type <code>com.training.entity.Laptop</code>
        laptops.insert(lift(obj))</p>
  
  <p><strong>Would work in that case (sure with PostgresJdbcContext in main):</strong></p>
  
  <pre><code>class LaptopDaoQuill[N &lt;: NamingStrategy : TypeTag](implicit ctx: PostgresJdbcContext[N]) {...}
  </code></pre>
  
  <p><strong>BUT not if :</strong></p>
  
  <pre><code>class LaptopDaoQuill[I &lt;: Idiom : TypeTag, N &lt;: NamingStrategy: TypeTag](implicit ctx: Context[I, N])
  </code></pre>
  
  <p>Thanks in advance!</p>