{-# language Safe #-}

module LazyAsync.Actions.Empty where

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

import LazyAsync.Prelude (toException)

emptyOutcome :: Outcome a
emptyOutcome :: Outcome a
emptyOutcome = SomeException -> Outcome a
forall a. SomeException -> Outcome a
Failure (NoAlternative -> SomeException
forall e. Exception e => e -> SomeException
toException NoAlternative
NoAlternative)

emptyStatus :: Status a
emptyStatus :: Status a
emptyStatus = Outcome a -> Status a
forall a. Outcome a -> Status a
Done Outcome a
forall a. Outcome a
emptyOutcome

emptyLazyAsync :: LazyAsync a
emptyLazyAsync :: LazyAsync a
emptyLazyAsync = LazyAsync a
forall a. LazyAsync a
Empty