trevjones
class FieldComparator<in T>(inline val getter: T.() -> Any?) : (T, T) -> Boolean { override fun invoke(p1: T, p2: T) = p1.getter() == p2.getter() }