{-# language Safe #-}

module LazyAsync.Actions.Pure where

import LazyAsync.Types (LazyAsync (..), Outcome (..), Status (..))

pureOutcome :: a -> Outcome a
pureOutcome :: a -> Outcome a
pureOutcome = a -> Outcome a
forall a. a -> Outcome a
Success

pureStatus :: a -> Status a
pureStatus :: a -> Status a
pureStatus a
x = Outcome a -> Status a
forall a. Outcome a -> Status a
Done (a -> Outcome a
forall a. a -> Outcome a
pureOutcome a
x)

pureLazyAsync :: a -> LazyAsync a
pureLazyAsync :: a -> LazyAsync a
pureLazyAsync = a -> LazyAsync a
forall a. a -> LazyAsync a
Pure