module Effectful.Zoo.Hedgehog.Api.Eval
( eval,
evalIO,
evalM,
evalEither,
evalMaybe,
) where
import Effectful
import Effectful.Dispatch.Dynamic
import Effectful.Zoo.Core
import Effectful.Zoo.Hedgehog.Dynamic
import HaskellWorks.Prelude
import Hedgehog qualified as H
eval :: forall a r. ()
=> HasCallStack
=> r <: Hedgehog
=> a
-> Eff r a
eval :: forall a (r :: [Effect]).
(HasCallStack, r <: Hedgehog) =>
a -> Eff r a
eval a
a =
(HasCallStack => Eff r a) -> Eff r a
forall a. HasCallStack => (HasCallStack => a) -> a
withFrozenCallStack do
a -> Eff r a
forall (m :: * -> *) a. (MonadTest m, HasCallStack) => a -> m a
H.eval a
a
evalEither :: forall a e r. ()
=> HasCallStack
=> r <: Hedgehog
=> Show e
=> Either e a
-> Eff r a
evalEither :: forall a e (r :: [Effect]).
(HasCallStack, r <: Hedgehog, Show e) =>
Either e a -> Eff r a
evalEither Either e a
e =
(HasCallStack => Eff r a) -> Eff r a
forall a. HasCallStack => (HasCallStack => a) -> a
withFrozenCallStack do
Either e a -> Eff r a
forall (m :: * -> *) x a.
(MonadTest m, Show x, HasCallStack) =>
Either x a -> m a
H.evalEither Either e a
e
evalMaybe :: forall a r. ()
=> HasCallStack
=> r <: Hedgehog
=> Maybe a
-> Eff r a
evalMaybe :: forall a (r :: [Effect]).
(HasCallStack, r <: Hedgehog) =>
Maybe a -> Eff r a
evalMaybe Maybe a
e =
(HasCallStack => Eff r a) -> Eff r a
forall a. HasCallStack => (HasCallStack => a) -> a
withFrozenCallStack do
Maybe a -> Eff r a
forall (m :: * -> *) a.
(MonadTest m, HasCallStack) =>
Maybe a -> m a
H.evalMaybe Maybe a
e
evalIO :: forall a r. ()
=> HasCallStack
=> r <: IOE
=> r <: Hedgehog
=> IO a
-> Eff r a
evalIO :: forall a (r :: [Effect]).
(HasCallStack, r <: IOE, r <: Hedgehog) =>
IO a -> Eff r a
evalIO IO a
f =
(HasCallStack => Eff r a) -> Eff r a
forall a. HasCallStack => (HasCallStack => a) -> a
withFrozenCallStack do
IO a -> Eff r a
forall (m :: * -> *) a.
(MonadTest m, MonadIO m, HasCallStack) =>
IO a -> m a
H.evalIO IO a
f
evalM :: forall a r. ()
=> HasCallStack
=> r <: Hedgehog
=> Eff r a
-> Eff r a
evalM :: forall a (r :: [Effect]).
(HasCallStack, r <: Hedgehog) =>
Eff r a -> Eff r a
evalM Eff r a
f =
(HasCallStack => Eff r a) -> Eff r a
forall a. HasCallStack => (HasCallStack => a) -> a
withFrozenCallStack do
Eff r a -> Eff r a
forall (m :: * -> *) a.
(MonadTest m, MonadCatch m, HasCallStack) =>
m a -> m a
H.evalM Eff r a
f