¿Cómo definir el tipo genérico en Scala?

En Slick 2, podemos mapear tablas como esta:

case class Cooler(id: Option[Int], minTemp: Option[Double], maxTemp: Option[Double])

/**
 * Define table "cooler".
 */
class Coolers(tag: Tag) extends Table[Cooler](tag, "cooler") {
  def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
  def minTemp = column[Double]("min_temp", O.Nullable)
  def maxTemp = column[Double]("max_temp", O.Nullable)

  def * = (id.?, minTemp.?, maxTemp.?) <> (Cooler.tupled, Cooler.unapply _)
}

object Coolers {
  val tableQuery = TableQuery[Coolers]
}

porque tengo muchas tablas, quiero definir métodos genéricos para ellas, comofind, delete, update así que tengo que definir estos métodos en una súper clase desde donde extender mis objetos (object Coolers extends TableUtils[Coolers, Cooler]). Para definir esos métodos, necesitotableQuery para salir de mi objeto en esta súper clase, así que lo intenté como:

abstract class TableUtils[T <: Table[A] , A] {

val tableQuery = TableQuery[T]  

}

pero recibo un error entableQuery definición:

class type required but T found

¿Alguien sabe lo que estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta