fun <V : Any> of(value: V?, fail: () -> Exception = { Exception() }): Result<V, Exception>
fun <V : Any, E : Exception> of(f: () -> V): Result<V, E>