interface Developer {
fun develop()
}
interface BeerExpert {
fun drink()
}
fun <T> doAll(u: T) where T : Developer, T : BeerExpert {
u.develop()
u.drink()
}
// I wish that could be written as
fun doAll(u: Developer & BeerExpert) {
u.develop()
u.drink()
}