SingletonHolder

fun <out T : Any, in A> SingletonHolder(creator: (A) -> T)