@@ -142,12 +142,13 @@ typealias Invalid<E> = Validated.Invalid<E>
142
142
* import arrow.core.Option
143
143
* import arrow.core.Some
144
144
* import arrow.core.Validated
145
+ * import arrow.core.validated
145
146
* import arrow.core.valid
146
147
* import arrow.core.invalid
147
148
*
148
149
* //sampleStart
149
150
* data class Config(val map: Map<String, String>) {
150
- * suspend fun <A> parse(read: Read<A>, key: String) = Validated.fx <ConfigError, A> {
151
+ * suspend fun <A> parse(read: Read<A>, key: String) = validated <ConfigError, A> {
151
152
* val value = Validated.fromNullable(map[key]) {
152
153
* ConfigError.MissingConfig(key)
153
154
* }.bind()
@@ -243,6 +244,7 @@ typealias Invalid<E> = Validated.Invalid<E>
243
244
* import arrow.core.Option
244
245
* import arrow.core.Some
245
246
* import arrow.core.Validated
247
+ * import arrow.core.validated
246
248
* import arrow.core.valid
247
249
* import arrow.core.invalid
248
250
* import arrow.core.NonEmptyList
@@ -275,7 +277,7 @@ typealias Invalid<E> = Validated.Invalid<E>
275
277
* }
276
278
*
277
279
* data class Config(val map: Map<String, String>) {
278
- * suspend fun <A> parse(read: Read<A>, key: String) = Validated.fx <ConfigError, A> {
280
+ * suspend fun <A> parse(read: Read<A>, key: String) = validated <ConfigError, A> {
279
281
* val value = Validated.fromNullable(map[key]) {
280
282
* ConfigError.MissingConfig(key)
281
283
* }.bind()
@@ -309,6 +311,7 @@ typealias Invalid<E> = Validated.Invalid<E>
309
311
* import arrow.core.Option
310
312
* import arrow.core.Some
311
313
* import arrow.core.Validated
314
+ * import arrow.core.validated
312
315
* import arrow.core.valid
313
316
* import arrow.core.invalid
314
317
* import arrow.core.NonEmptyList
@@ -341,7 +344,7 @@ typealias Invalid<E> = Validated.Invalid<E>
341
344
* }
342
345
*
343
346
* data class Config(val map: Map<String, String>) {
344
- * suspend fun <A> parse(read: Read<A>, key: String) = Validated.fx <ConfigError, A> {
347
+ * suspend fun <A> parse(read: Read<A>, key: String) = validated <ConfigError, A> {
345
348
* val value = Validated.fromNullable(map[key]) {
346
349
* ConfigError.MissingConfig(key)
347
350
* }.bind()
@@ -382,6 +385,7 @@ typealias Invalid<E> = Validated.Invalid<E>
382
385
* import arrow.core.right
383
386
* import arrow.core.Some
384
387
* import arrow.core.Validated
388
+ * import arrow.core.validated
385
389
* import arrow.core.valid
386
390
* import arrow.core.invalid
387
391
*
@@ -404,7 +408,7 @@ typealias Invalid<E> = Validated.Invalid<E>
404
408
* }
405
409
*
406
410
* data class Config(val map: Map<String, String>) {
407
- * suspend fun <A> parse(read: Read<A>, key: String) = Validated.fx <ConfigError, A> {
411
+ * suspend fun <A> parse(read: Read<A>, key: String) = validated <ConfigError, A> {
408
412
* val value = Validated.fromNullable(map[key]) {
409
413
* ConfigError.MissingConfig(key)
410
414
* }.bind()
@@ -678,21 +682,6 @@ sealed class Validated<out E, out A> : ValidatedOf<E, A> {
678
682
*/
679
683
fun <E , A > fromNullable (value : A ? , ifNull : () -> E ): Validated <E , A > =
680
684
value?.let (::Valid ) ? : Invalid (ifNull())
681
-
682
- fun <E , A > fx2 (c : suspend EagerBind <ValidatedPartialOf <E >>.() -> A ): Validated <E , A > {
683
- val continuation: ValidatedContinuation <E , A > = ValidatedContinuation ()
684
- return continuation.startCoroutineUninterceptedAndReturn {
685
- Valid (c())
686
- } as Validated <E , A >
687
- }
688
-
689
- suspend fun <E , A > fx (c : suspend BindSyntax <ValidatedPartialOf <E >>.() -> A ): Validated <E , A > =
690
- suspendCoroutineUninterceptedOrReturn sc@{ cont ->
691
- val continuation = ValidatedSContinuation (cont as Continuation <ValidatedOf <E , A >>)
692
- continuation.startCoroutineUninterceptedOrReturn {
693
- Valid (c())
694
- }
695
- }
696
685
}
697
686
698
687
fun show (SE : Show <E >, SA : Show <A >): String = fold({
@@ -906,6 +895,21 @@ fun <A> A.validNel(): ValidatedNel<Nothing, A> =
906
895
fun <E > E.invalidNel (): ValidatedNel <E , Nothing > =
907
896
Validated .invalidNel(this )
908
897
898
+ fun <E , A > validated (c : suspend EagerBind <ValidatedPartialOf <E >>.() -> A ): Validated <E , A > {
899
+ val continuation: ValidatedContinuation <E , A > = ValidatedContinuation ()
900
+ return continuation.startCoroutineUninterceptedAndReturn {
901
+ Valid (c())
902
+ } as Validated <E , A >
903
+ }
904
+
905
+ suspend fun <E , A > validated (c : suspend BindSyntax <ValidatedPartialOf <E >>.() -> A ): Validated <E , A > =
906
+ suspendCoroutineUninterceptedOrReturn { cont ->
907
+ val continuation = ValidatedSContinuation (cont as Continuation <ValidatedOf <E , A >>)
908
+ continuation.startCoroutineUninterceptedOrReturn {
909
+ Valid (c())
910
+ }
911
+ }
912
+
909
913
internal class ValidatedSContinuation <E , A >(
910
914
parent : Continuation <ValidatedOf <E , A >>
911
915
) : SuspendMonadContinuation<ValidatedPartialOf<E>, A>(parent) {
0 commit comments