packages feed

lazy-async-1.0.0.0: src/LazyAsync/Orphans.hs

{-# language Safe #-}

{-# options_ghc -Wno-orphans #-}

module LazyAsync.Orphans where

import LazyAsync.Actions
import LazyAsync.Prelude
import LazyAsync.Types

-- | 🌈 '<*>' is equivalent to 'LazyAsync.apply'
instance Applicative LazyAsync where
    pure = pureLazyAsync
    (<*>) = apply

-- | 🌈 '<|>' is equivalent to 'LazyAsync.choose'
instance Alternative LazyAsync where
    empty = emptyLazyAsync
    (<|>) = choose

-- | 🌈 '<*>' is equivalent to 'applyStatus'
instance Applicative Status where
    pure = pureStatus
    (<*>) = applyStatus

-- | 🌈 '<|>' is equivalent to 'chooseStatus'
instance Alternative Status where
    empty = emptyStatus
    (<|>) = chooseStatus

-- | 🌈 '<*>' is equivalent to 'applyOutcome'
instance Applicative Outcome where
    pure = pureOutcome
    (<*>) = applyOutcome

-- | 🌈 '<|>' is equivalent to 'chooseOutcome'
instance Alternative Outcome where
    empty = emptyOutcome
    (<|>) = chooseOutcome