TIL how to implement an anonymous abstract class in Kotlin. This is something you do all the time in Java with Android for example, when an interface calls for a single abstract method implementation. Consider the following Java code for example.

abstract class Foobar {  
  abstract String foo();
}

Foobar = new Foobar() {  
    @Override
    String foo() {
      return "foo!";
    }
}

In Kotlin, the syntax proved a bit more tricky to track down - easily doable, just slightly elusive:

abstract class Foobar {  
    abstract fun foo(): String
}

class UsesFoo {  
    fun foo(foo:Foobar) {
        println(foo)
    }
}

fun main(args: Array<String>) {  
    UsesFoo().foo(object: Foobar() {
        override fun foo(): String {
            return "foo!"
        }
    })
}

Notice the "object:" portion of the above code?