In the Slick library we find this declaration:
/** A configuration for a Database plus a matching Profile. */
trait DatabaseConfig[P <: BasicProfile] {
/** Get the configured Database. It is instantiated lazily when this method is called for the
* first time, and must be closed after use. */
def db: P#Backend#Database
}
What does P#Backend#Database
mean? What does #
do? Is it a standard Scala construct or something from a library?