fun debounce(onClickListener: (v: View) -> Unit) : View.OnClickListener =
DebounceClickListener(View.OnClickListener { v -> onClickListener.invoke(v) })
view.setOnClickListener = debounce {...} // here is compiler error that it can not apply this to any two possible signatures