Was ist "at" in shapeless (scala)?

Ich habe ein Objekt (wahrscheinlich eine Funktion) mit dem Namen "at" gesehen, das in der gesamten formlosen Quelle und in Code, der formlos verwendet, verteilt ist. Insbesondere wird es in der Antwort auf verwendetdiese andere Frage. Hier ist das Code-Snippet:

object iterateOverHList extends Poly1 {
  implicit def iterable[T, L[T] <: Iterable[T]] = at[L[T]](_.iterator)
}

Ich hatte eine Ahnung, dass es mit der Methode apply vom Typ ~> zusammenhängt. Was genau macht "at" und wo ist es definiert?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage