lazy-async-1.0.0.0: test/Test/Optics.hs
module Test.Optics (focus, _Incomplete, _Failure, _Success, _Done) where
import Control.Monad (Monad (return))
import Data.Function ((.))
import Data.Maybe (maybe)
import Hedgehog (MonadTest, failure)
import LazyAsync (Outcome, Status)
import Optics.AffineFold (An_AffineFold, preview)
import Optics.Optic (Is, Optic')
import Optics.TH (makePrisms)
$(makePrisms ''Status)
$(makePrisms ''Outcome)
focus :: (MonadTest m, Is k An_AffineFold) => Optic' k is s a -> s -> m a
focus o = maybe failure return . preview o