kluck
inline fun <reified A> Option<*>.filterInstance(): Option<A> = flatMap { if (it is A) it.some<A>() else None }