roc/examples/cli/cli-platform/InternalTask.roc
2022-09-11 22:32:15 -06:00

17 lines
482 B
Text

interface InternalTask
exposes [Task, fromEffect, toEffect, succeed, fail]
imports [Effect.{ Effect }]
Task ok err fx := Effect (Result ok err)
succeed : ok -> Task ok * *
succeed = \ok -> @Task (Effect.always (Ok ok))
fail : err -> Task * err *
fail = \err -> @Task (Effect.always (Err err))
fromEffect : Effect (Result ok err) -> Task ok err *
fromEffect = \effect -> @Task effect
toEffect : Task ok err * -> Effect (Result ok err)
toEffect = \@Task effect -> effect