Implicit Function Types

Hi, it is great.
Unfortunately, I think there still is a lack of user friendly for code assistance.
Will there be possible something like “implicit import”?

For example, we use SQL DSL to work with EclipseLink:

for( ra <- new OQuery(EmployeeAta.Type) {
  where((t.firstName === "John".ns) and (t.lastName === "Way".ns))
  forUpdate()
}){
  val t = ra.copyAro()
  println(s"${t.firstName},${t.lastName}")
}

It will be great to replace anonymous classes with implicit Function Types. However, if we do this, methods “where” and “for update” will be global.
The sql gramma quite complex and we need those dsl methods to be context dependent.
For example, “forUpdate» must be visible only in “OQuery”.
It is important because, our application programmers use some methods quite rare, and without smart code assistance, it is uncomfortable.

How can we add “context dependency” in such case?

for( ra <- OQuery(EmployeeAta.Type) { implicit q: OQuery =>
  import OQuery.helper._
  where((t.firstName === "John".ns) and (t.lastName === "Way".ns))
  forUpdate()
}){
  val t = ra.copyAro()
  println(s"${t.firstName},${t.lastName}")
}

For DSL it will be quite usable.
For example with Anorm it will be great that “import anorm._” will be done automatically in some cases, for example:

doSql{
SQL"""
select a.address_id AS country_lang from address a
 where a.address_id =$id
  """. as(SqlParser.int("country_lang").single)
}

Now we need to write:

doSql{ impiclit connection =>
import anorm._
SQL"""
select a.address_id AS country_lang from address a
 where a.address_id =$id
  """. as(SqlParser.int("country_lang").single)
}