From 6dcea4f1517c2d7d286e5276ed66c35d71738dff Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Sat, 3 Apr 2021 22:03:00 -0400 Subject: [PATCH] Use backpassing and await in task example --- examples/task/Main.roc | 9 ++++++--- examples/task/platform/Task.roc | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/examples/task/Main.roc b/examples/task/Main.roc index 6f878a28ac..874028242b 100644 --- a/examples/task/Main.roc +++ b/examples/task/Main.roc @@ -1,12 +1,15 @@ app "task-example" packages { base: "platform" } - imports [ base.Task.{ Task, after }, base.File, base.Path ] + imports [ base.Task.{ Task }, base.File, base.Path ] provides [ main ] to base main : Task.Task {} (File.FileReadErr [BadUtf8]) main = when Path.fromStr "Cargo.toml" is Ok path -> - Task.after (Task.putLine "Our Cargo.toml:") \_ -> - Task.after (File.readUtf8 path) (\line -> Task.putLine line) + {} <- Task.await (Task.putLine "Our Cargo.toml:") + + line <- Task.await (File.readUtf8 path) + + Task.putLine line _ -> Task.putLine "invalid path" diff --git a/examples/task/platform/Task.roc b/examples/task/platform/Task.roc index 9615fb30fb..87dba21adc 100644 --- a/examples/task/platform/Task.roc +++ b/examples/task/platform/Task.roc @@ -1,5 +1,5 @@ interface Task - exposes [ Task, succeed, fail, after, map, putLine ] + exposes [ Task, succeed, fail, await, map, putLine ] imports [ fx.Effect ] @@ -16,8 +16,8 @@ fail = \val -> Effect.always (Err val) -after : Task a err, (a -> Task b err) -> Task b err -after = \effect, transform -> +await : Task a err, (a -> Task b err) -> Task b err +await = \effect, transform -> Effect.after effect \result -> when result is Ok a -> transform a