singleton

inline fun <A> singleton(raise: () -> A, block: context(SingletonRaise<A>) () -> A): A