packages feed

hw-polysemy 0.2.11.1 → 0.2.12.0

raw patch · 8 files changed

+345/−18 lines, 8 filesdep +amazonkadep +amazonka-s3dep +http-conduitPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: amazonka, amazonka-s3, http-conduit, tasty-discover, testcontainers

API changes (from Hackage documentation)

- HaskellWorks.Polysemy.Hedgehog: (===) :: () => Member Hedgehog r => Eq a => Show a => HasCallStack => a -> a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: PackagePath :: FilePath -> PackagePath
- HaskellWorks.Polysemy.Hedgehog: ProjectRoot :: FilePath -> ProjectRoot
- HaskellWorks.Polysemy.Hedgehog: Workspace :: FilePath -> Workspace
- HaskellWorks.Polysemy.Hedgehog: [$sel:filePath:PackagePath] :: PackagePath -> FilePath
- HaskellWorks.Polysemy.Hedgehog: [$sel:filePath:ProjectRoot] :: ProjectRoot -> FilePath
- HaskellWorks.Polysemy.Hedgehog: [$sel:filePath:Workspace] :: Workspace -> FilePath
- HaskellWorks.Polysemy.Hedgehog: byDeadlineIO :: () => HasCallStack => Member (Embed m) r => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> UTCTime -> String -> m a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: byDeadlineM :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => NominalDiffTime -> UTCTime -> String -> Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: byDurationIO :: () => HasCallStack => Member (Embed m) r => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> NominalDiffTime -> String -> m b -> Sem r b
- HaskellWorks.Polysemy.Hedgehog: byDurationM :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> NominalDiffTime -> String -> Sem r b -> Sem r b
- HaskellWorks.Polysemy.Hedgehog: catchAssertion :: forall r_amJG a_alm1. (Member Hedgehog r_amJG, HasCallStack) => Sem r_amJG a_alm1 -> (Failure -> Sem r_amJG a_alm1) -> Sem r_amJG a_alm1
- HaskellWorks.Polysemy.Hedgehog: catchFail :: forall e r a. () => Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: data Hedgehog m rv
- HaskellWorks.Polysemy.Hedgehog: data () => Property
- HaskellWorks.Polysemy.Hedgehog: eval :: forall r_amJJ a_alm2. (Member Hedgehog r_amJJ, HasCallStack) => a_alm2 -> Sem r_amJJ a_alm2
- HaskellWorks.Polysemy.Hedgehog: evalIO :: forall r_amJN a_alm6. (Member Hedgehog r_amJN, HasCallStack) => IO a_alm6 -> Sem r_amJN a_alm6
- HaskellWorks.Polysemy.Hedgehog: evalIO_ :: () => Member Hedgehog r => HasCallStack => IO a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: evalM :: forall r_amJL a_alm5. (Member Hedgehog r_amJL, HasCallStack) => Sem r_amJL a_alm5 -> Sem r_amJL a_alm5
- HaskellWorks.Polysemy.Hedgehog: evalM_ :: () => Member Hedgehog r => HasCallStack => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: failMessage :: () => Member Hedgehog r => HasCallStack => CallStack -> String -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: failWith :: forall r_amJP a_alm9. (Member Hedgehog r_amJP, HasCallStack) => Maybe Diff -> String -> Sem r_amJP a_alm9
- HaskellWorks.Polysemy.Hedgehog: failWithCustom :: forall r_amJS a_almb. Member Hedgehog r_amJS => CallStack -> Maybe Diff -> String -> Sem r_amJS a_almb
- HaskellWorks.Polysemy.Hedgehog: failure :: () => Member Hedgehog r => HasCallStack => Sem r a
- HaskellWorks.Polysemy.Hedgehog: findCabalProjectDir :: () => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog: hedgehogToPropertyFinal :: () => Member (Final (PropertyT IO)) r => Sem (Hedgehog ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: interpretDataLogHedgehog :: () => Member Hedgehog r => (a -> Text) -> (a -> CallStack) -> InterpreterFor (DataLog a) r
- HaskellWorks.Polysemy.Hedgehog: jot :: () => Member Hedgehog r => HasCallStack => String -> Sem r String
- HaskellWorks.Polysemy.Hedgehog: jotBsUtf8M :: () => Member Hedgehog r => HasCallStack => Sem r ByteString -> Sem r ByteString
- HaskellWorks.Polysemy.Hedgehog: jotEach :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog: jotEachIO :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog: jotEachIO_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotEachM :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog: jotEachM_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotEach_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotIO :: () => Member Hedgehog r => HasCallStack => IO String -> Sem r String
- HaskellWorks.Polysemy.Hedgehog: jotIO_ :: () => Member Hedgehog r => HasCallStack => IO String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotJson :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotJsonM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotJsonM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotJsonPretty :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotJsonPrettyM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotJsonPrettyM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotJsonPretty_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotJson_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotLbsUtf8M :: () => Member Hedgehog r => HasCallStack => Sem r ByteString -> Sem r ByteString
- HaskellWorks.Polysemy.Hedgehog: jotM :: () => ToString s => Member Hedgehog r => HasCallStack => Sem r s -> Sem r s
- HaskellWorks.Polysemy.Hedgehog: jotM_ :: () => Member Hedgehog r => HasCallStack => Sem r String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotPkgGoldenFile :: () => HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog: jotPkgInputFile :: () => HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog: jotRootInputFile :: () => HasCallStack => Member Hedgehog r => Member (Reader ProjectRoot) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog: jotShow :: () => Member Hedgehog r => HasCallStack => Show a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotShowIO :: () => Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotShowIO_ :: () => Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotShowM :: () => Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotShowM_ :: () => Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotShow_ :: () => Member Hedgehog r => HasCallStack => Show a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotTempFile :: () => HasCallStack => Member Hedgehog r => Member (Reader Workspace) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog: jotText_ :: () => Member Hedgehog r => HasCallStack => Text -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotWithCallstack :: () => Member Hedgehog r => CallStack -> String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotYaml :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotYamlM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: jotYamlM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jotYaml_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: jot_ :: () => Member Hedgehog r => HasCallStack => ToString s => s -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: leftFail :: () => Member Hedgehog r => Show e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailJson :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailJsonM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailJsonPretty :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailJsonPrettyM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailM :: forall e r a. () => Member Hedgehog r => Show e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailPretty :: () => Member Hedgehog r => Pretty e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailPrettyM :: forall e r a. () => Member Hedgehog r => Pretty e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailYaml :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: leftFailYamlM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: moduleWorkspace :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => String -> Sem (Reader Workspace : r) () -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: newtype PackagePath
- HaskellWorks.Polysemy.Hedgehog: newtype ProjectRoot
- HaskellWorks.Polysemy.Hedgehog: newtype Workspace
- HaskellWorks.Polysemy.Hedgehog: nothingFail :: () => Member Hedgehog r => HasCallStack => Maybe a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: nothingFailM :: forall r a. () => Member Hedgehog r => HasCallStack => Sem r (Maybe a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: propertyOnce :: () => Sem [Log, DataLog (LogEntry LogMessage), DataLog Text, GhcTime, Hedgehog, Embed IO, Embed (PropertyT IO), Resource, Final (PropertyT IO)] () -> Property
- HaskellWorks.Polysemy.Hedgehog: requireHead :: () => Member Hedgehog r => HasCallStack => [a] -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: throwAssertion :: forall r_amJW a_almd. (Member Hedgehog r_amJW, HasCallStack) => Failure -> Sem r_amJW a_almd
- HaskellWorks.Polysemy.Hedgehog: trapAssertion :: () => Member Hedgehog r => (Failure -> Sem r a) -> Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: trapFail :: forall e r a. () => Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: trapFailJson :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: trapFailJsonPretty :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: trapFailYaml :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog: workspace :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => HasCallStack => FilePath -> Sem (Reader Workspace : r) () -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog: writeLog :: forall r_amJY. (Member Hedgehog r_amJY, HasCallStack) => Log -> Sem r_amJY ()
- HaskellWorks.Polysemy.Hedgehog.Assert: (===) :: () => Member Hedgehog r => Eq a => Show a => HasCallStack => a -> a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertDirectoryExists :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertDirectoryMissing :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertEndsWithSingleNewline :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFileExists :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFileLines :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => (Int -> Bool) -> FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFileMissing :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFileOccurences :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => Int -> String -> FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFilesExist :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => [FilePath] -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertFilesMissing :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => [FilePath] -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertIsJsonFile_ :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertIsYamlFile :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Assert: assertPidOk :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member (Error IOException) r => ProcessHandle -> Sem r Pid
- HaskellWorks.Polysemy.Hedgehog.Assert: byDeadlineIO :: () => HasCallStack => Member (Embed m) r => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> UTCTime -> String -> m a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: byDeadlineM :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => NominalDiffTime -> UTCTime -> String -> Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: byDurationIO :: () => HasCallStack => Member (Embed m) r => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> NominalDiffTime -> String -> m b -> Sem r b
- HaskellWorks.Polysemy.Hedgehog.Assert: byDurationM :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member Log r => NominalDiffTime -> NominalDiffTime -> String -> Sem r b -> Sem r b
- HaskellWorks.Polysemy.Hedgehog.Assert: catchFail :: forall e r a. () => Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: data Hedgehog m rv
- HaskellWorks.Polysemy.Hedgehog.Assert: evalIO :: forall r_amJN a_alm6. (Member Hedgehog r_amJN, HasCallStack) => IO a_alm6 -> Sem r_amJN a_alm6
- HaskellWorks.Polysemy.Hedgehog.Assert: failMessage :: () => Member Hedgehog r => HasCallStack => CallStack -> String -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: failure :: () => Member Hedgehog r => HasCallStack => Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFail :: () => Member Hedgehog r => Show e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailJson :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailJsonM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailJsonPretty :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailJsonPrettyM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailM :: forall e r a. () => Member Hedgehog r => Show e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailPretty :: () => Member Hedgehog r => Pretty e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailPrettyM :: forall e r a. () => Member Hedgehog r => Pretty e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailYaml :: () => Member Hedgehog r => ToJSON e => HasCallStack => Either e a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: leftFailYamlM :: forall e r a. () => Member Hedgehog r => ToJSON e => HasCallStack => Sem r (Either e a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: nothingFail :: () => Member Hedgehog r => HasCallStack => Maybe a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: nothingFailM :: forall r a. () => Member Hedgehog r => HasCallStack => Sem r (Maybe a) -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: requireHead :: () => Member Hedgehog r => HasCallStack => [a] -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: trapFail :: forall e r a. () => Member Hedgehog r => HasCallStack => Show e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: trapFailJson :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: trapFailJsonPretty :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Assert: trapFailYaml :: forall e r a. () => Member Hedgehog r => HasCallStack => ToJSON e => Sem (Error e ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: assertEquals :: forall r_amJD a_X0. (Member Hedgehog r_amJD, HasCallStack, Eq a_X0, Show a_X0) => a_X0 -> a_X0 -> Sem r_amJD ()
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: catchAssertion :: forall r_amJG a_alm1. (Member Hedgehog r_amJG, HasCallStack) => Sem r_amJG a_alm1 -> (Failure -> Sem r_amJG a_alm1) -> Sem r_amJG a_alm1
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: catchExToPropertyFinal :: () => Member (Final (PropertyT IO)) r => Sem (Except ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: data Hedgehog m rv
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: eval :: forall r_amJJ a_alm2. (Member Hedgehog r_amJJ, HasCallStack) => a_alm2 -> Sem r_amJJ a_alm2
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalIO :: forall r_amJN a_alm6. (Member Hedgehog r_amJN, HasCallStack) => IO a_alm6 -> Sem r_amJN a_alm6
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalM :: forall r_amJL a_alm5. (Member Hedgehog r_amJL, HasCallStack) => Sem r_amJL a_alm5 -> Sem r_amJL a_alm5
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWith :: forall r_amJP a_alm9. (Member Hedgehog r_amJP, HasCallStack) => Maybe Diff -> String -> Sem r_amJP a_alm9
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWithCustom :: forall r_amJS a_almb. Member Hedgehog r_amJS => CallStack -> Maybe Diff -> String -> Sem r_amJS a_almb
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: hedgehogToMonadTestFinal :: () => MonadIO m => MonadCatch m => MonadTest m => MonadAssertion m => Member (Final m) r => Sem (Hedgehog ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: hedgehogToPropertyFinal :: () => Member (Final (PropertyT IO)) r => Sem (Hedgehog ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: hedgehogToTestFinal :: () => Member (Final (TestT IO)) r => Sem (Hedgehog ': r) a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: throwAssertion :: forall r_amJW a_almd. (Member Hedgehog r_amJW, HasCallStack) => Failure -> Sem r_amJW a_almd
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: trapAssertion :: () => Member Hedgehog r => (Failure -> Sem r a) -> Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: writeLog :: forall r_amJY. (Member Hedgehog r_amJY, HasCallStack) => Log -> Sem r_amJY ()
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: catchAssertion :: MonadAssertion m => m a -> (Failure -> m a) -> m a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: class Monad m => MonadAssertion m
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: failWithCustom :: () => MonadTest m => CallStack -> Maybe Diff -> String -> m a
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: instance GHC.Base.Monad m => HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal.MonadAssertion (Hedgehog.Internal.Property.PropertyT m)
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: instance GHC.Base.Monad m => HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal.MonadAssertion (Hedgehog.Internal.Property.TestT m)
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: instance HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal.MonadAssertion m => HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal.MonadAssertion (Control.Monad.Trans.Resource.Internal.ResourceT m)
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal: throwAssertion :: MonadAssertion m => Failure -> m a
- HaskellWorks.Polysemy.Hedgehog.Effect.Log: getLogEntryCallStack :: LogEntry LogMessage -> CallStack
- HaskellWorks.Polysemy.Hedgehog.Effect.Log: interpretDataLogHedgehog :: () => Member Hedgehog r => (a -> Text) -> (a -> CallStack) -> InterpreterFor (DataLog a) r
- HaskellWorks.Polysemy.Hedgehog.Eval: eval :: forall r_amJJ a_alm2. (Member Hedgehog r_amJJ, HasCallStack) => a_alm2 -> Sem r_amJJ a_alm2
- HaskellWorks.Polysemy.Hedgehog.Eval: evalIO :: forall r_amJN a_alm6. (Member Hedgehog r_amJN, HasCallStack) => IO a_alm6 -> Sem r_amJN a_alm6
- HaskellWorks.Polysemy.Hedgehog.Eval: evalIO_ :: () => Member Hedgehog r => HasCallStack => IO a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Eval: evalM :: forall r_amJL a_alm5. (Member Hedgehog r_amJL, HasCallStack) => Sem r_amJL a_alm5 -> Sem r_amJL a_alm5
- HaskellWorks.Polysemy.Hedgehog.Eval: evalM_ :: () => Member Hedgehog r => HasCallStack => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Golden: diffFileVsGoldenFile :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member Log r => Member Resource r => FilePath -> FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Golden: diffVsGoldenFile :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member Resource r => Member Log r => String -> FilePath -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jot :: () => Member Hedgehog r => HasCallStack => String -> Sem r String
- HaskellWorks.Polysemy.Hedgehog.Jot: jotBsUtf8M :: () => Member Hedgehog r => HasCallStack => Sem r ByteString -> Sem r ByteString
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEach :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEachIO :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEachIO_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => IO (f a) -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEachM :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r (f a)
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEachM_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => Sem r (f a) -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotEach_ :: () => Member Hedgehog r => HasCallStack => Show a => Traversable f => f a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotIO :: () => Member Hedgehog r => HasCallStack => IO String -> Sem r String
- HaskellWorks.Polysemy.Hedgehog.Jot: jotIO_ :: () => Member Hedgehog r => HasCallStack => IO String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJson :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonPretty :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonPrettyM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonPrettyM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJsonPretty_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotJson_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotLbsUtf8M :: () => Member Hedgehog r => HasCallStack => Sem r ByteString -> Sem r ByteString
- HaskellWorks.Polysemy.Hedgehog.Jot: jotM :: () => ToString s => Member Hedgehog r => HasCallStack => Sem r s -> Sem r s
- HaskellWorks.Polysemy.Hedgehog.Jot: jotM_ :: () => Member Hedgehog r => HasCallStack => Sem r String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotPkgGoldenFile :: () => HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Jot: jotPkgInputFile :: () => HasCallStack => Member Hedgehog r => Member (Reader PackagePath) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Jot: jotRootInputFile :: () => HasCallStack => Member Hedgehog r => Member (Reader ProjectRoot) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShow :: () => Member Hedgehog r => HasCallStack => Show a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShowIO :: () => Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShowIO_ :: () => Member Hedgehog r => HasCallStack => Show a => IO a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShowM :: () => Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShowM_ :: () => Member Hedgehog r => HasCallStack => Show a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotShow_ :: () => Member Hedgehog r => HasCallStack => Show a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotTempFile :: () => HasCallStack => Member Hedgehog r => Member (Reader Workspace) r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Jot: jotText_ :: () => Member Hedgehog r => HasCallStack => Text -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotWithCallstack :: () => Member Hedgehog r => CallStack -> String -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotYaml :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotYamlM :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r a
- HaskellWorks.Polysemy.Hedgehog.Jot: jotYamlM_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => Sem r a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jotYaml_ :: () => Member Hedgehog r => HasCallStack => ToJSON a => a -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Jot: jot_ :: () => Member Hedgehog r => HasCallStack => ToString s => s -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Process: ExecConfig :: Last [(String, String)] -> Last FilePath -> ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: [$sel:execConfigCwd:ExecConfig] :: ExecConfig -> Last FilePath
- HaskellWorks.Polysemy.Hedgehog.Process: [$sel:execConfigEnv:ExecConfig] :: ExecConfig -> Last [(String, String)]
- HaskellWorks.Polysemy.Hedgehog.Process: binFlex :: () => HasCallStack => Member (Embed IO) r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => String -> String -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Process: data ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: defaultExecConfig :: ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: exec :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> [String] -> Sem r (ExitCode, String, String)
- HaskellWorks.Polysemy.Hedgehog.Process: execDetailFlex :: () => HasCallStack => Member (Embed IO) r => Member (Error GenericError) r => Member (Error IOException) r => Member Hedgehog r => Member Log r => ExecConfig -> String -> String -> [String] -> Sem r (ExitCode, String, String)
- HaskellWorks.Polysemy.Hedgehog.Process: execFlex :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> String -> [String] -> Sem r (ExitCode, String, String)
- HaskellWorks.Polysemy.Hedgehog.Process: execFlexOk :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => String -> String -> [String] -> Sem r String
- HaskellWorks.Polysemy.Hedgehog.Process: execFlexOk' :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> String -> [String] -> Sem r String
- HaskellWorks.Polysemy.Hedgehog.Process: execOk :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> [String] -> Sem r String
- HaskellWorks.Polysemy.Hedgehog.Process: execOk_ :: () => HasCallStack => Member (Embed IO) r => Member Hedgehog r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> [String] -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Process: instance GHC.Classes.Eq HaskellWorks.Polysemy.Hedgehog.Process.ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: instance GHC.Generics.Generic HaskellWorks.Polysemy.Hedgehog.Process.ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: instance GHC.Show.Show HaskellWorks.Polysemy.Hedgehog.Process.ExecConfig
- HaskellWorks.Polysemy.Hedgehog.Process: procFlex :: () => HasCallStack => Member (Embed IO) r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => String -> String -> [String] -> Sem r CreateProcess
- HaskellWorks.Polysemy.Hedgehog.Process: procFlex' :: () => HasCallStack => Member (Embed IO) r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => ExecConfig -> String -> String -> [String] -> Sem r CreateProcess
- HaskellWorks.Polysemy.Hedgehog.Process: waitSecondsForProcess :: forall (r :: EffectRow). (Member (Embed IO) r, Member (Error GenericError :: (Type -> Type) -> Type -> Type) r, Member (Error IOException :: (Type -> Type) -> Type -> Type) r, Member (Error TimedOut :: (Type -> Type) -> Type -> Type) r, Member Log r) => Int -> ProcessHandle -> Sem r (Maybe ExitCode)
- HaskellWorks.Polysemy.Hedgehog.Process: waitSecondsForProcessOk :: () => HasCallStack => Member Hedgehog r => Member (Embed IO) r => Member (Error GenericError) r => Member (Error IOException) r => Member Log r => Int -> ProcessHandle -> Sem r ExitCode
- HaskellWorks.Polysemy.Hedgehog.Process.Internal: argQuote :: String -> String
- HaskellWorks.Polysemy.Hedgehog.Property: data () => Property
- HaskellWorks.Polysemy.Hedgehog.Property: propertyOnce :: () => Sem [Log, DataLog (LogEntry LogMessage), DataLog Text, GhcTime, Hedgehog, Embed IO, Embed (PropertyT IO), Resource, Final (PropertyT IO)] () -> Property
- HaskellWorks.Polysemy.Hedgehog.Test: data () => Property
- HaskellWorks.Polysemy.Hedgehog.Test: test :: () => Sem [Log, DataLog (LogEntry LogMessage), DataLog Text, GhcTime, Hedgehog, Embed IO, Embed (TestT IO), Resource, Final (TestT IO)] () -> Property
- HaskellWorks.Polysemy.Hedgehog.Workspace: PackagePath :: FilePath -> PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: ProjectRoot :: FilePath -> ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace: Workspace :: FilePath -> Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace: [$sel:filePath:PackagePath] :: PackagePath -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: [$sel:filePath:ProjectRoot] :: ProjectRoot -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: [$sel:filePath:Workspace] :: Workspace -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: findCabalProjectDir :: () => Member Hedgehog r => Member (Embed IO) r => Member Log r => FilePath -> Sem r FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: moduleWorkspace :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => String -> Sem (Reader Workspace : r) () -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Workspace: newtype PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace: newtype ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace: newtype Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace: workspace :: () => HasCallStack => Member Hedgehog r => Member Log r => Member (Embed IO) r => HasCallStack => FilePath -> Sem (Reader Workspace : r) () -> Sem r ()
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: PackagePath :: FilePath -> PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: ProjectRoot :: FilePath -> ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: Workspace :: FilePath -> Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: [$sel:filePath:PackagePath] :: PackagePath -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: [$sel:filePath:ProjectRoot] :: ProjectRoot -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: [$sel:filePath:Workspace] :: Workspace -> FilePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Classes.Eq HaskellWorks.Polysemy.Hedgehog.Workspace.Types.PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Classes.Eq HaskellWorks.Polysemy.Hedgehog.Workspace.Types.ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Classes.Eq HaskellWorks.Polysemy.Hedgehog.Workspace.Types.Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Generics.Generic HaskellWorks.Polysemy.Hedgehog.Workspace.Types.Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Show.Show HaskellWorks.Polysemy.Hedgehog.Workspace.Types.PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Show.Show HaskellWorks.Polysemy.Hedgehog.Workspace.Types.ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: instance GHC.Show.Show HaskellWorks.Polysemy.Hedgehog.Workspace.Types.Workspace
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: newtype PackagePath
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: newtype ProjectRoot
- HaskellWorks.Polysemy.Hedgehog.Workspace.Types: newtype Workspace
+ HaskellWorks.Polysemy.Amazonka.LocalStack: runReaderLocalAwsEnvDiscover :: () => Member (Embed IO) r => IO LocalStackEndpoint -> Sem (Reader Env : r) a -> Sem r a
+ HaskellWorks.TestContainers.LocalStack: LocalStackEndpoint :: String -> Int -> LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack: [$sel:host:LocalStackEndpoint] :: LocalStackEndpoint -> String
+ HaskellWorks.TestContainers.LocalStack: [$sel:port:LocalStackEndpoint] :: LocalStackEndpoint -> Int
+ HaskellWorks.TestContainers.LocalStack: data LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack: setupContainers :: MonadDocker m => m LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack: waitForLocalStack :: String -> Int -> Int -> IO ()
+ HaskellWorks.TestContainers.LocalStack.Types: LocalStackEndpoint :: String -> Int -> LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack.Types: [$sel:host:LocalStackEndpoint] :: LocalStackEndpoint -> String
+ HaskellWorks.TestContainers.LocalStack.Types: [$sel:port:LocalStackEndpoint] :: LocalStackEndpoint -> Int
+ HaskellWorks.TestContainers.LocalStack.Types: data LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack.Types: instance GHC.Classes.Eq HaskellWorks.TestContainers.LocalStack.Types.LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack.Types: instance GHC.Generics.Generic HaskellWorks.TestContainers.LocalStack.Types.LocalStackEndpoint
+ HaskellWorks.TestContainers.LocalStack.Types: instance GHC.Show.Show HaskellWorks.TestContainers.LocalStack.Types.LocalStackEndpoint

Files

+ amazonka/HaskellWorks/Polysemy/Amazonka.hs view
@@ -0,0 +1,43 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE TypeApplications #-}++module HaskellWorks.Polysemy.Amazonka+  ( runReaderAwsEnvDiscover,+    sendAws,+  ) where++import           Control.Monad.IO.Class+import           Control.Monad.Trans.Resource+import           Data.Typeable++import qualified Amazonka                     as AWS+import           HaskellWorks.Prelude+import           Polysemy+import           Polysemy.Error+import           Polysemy.Reader+import qualified System.IO                    as IO++runReaderAwsEnvDiscover :: ()+  => Member (Embed IO) r+  => Sem (Reader AWS.Env : r) a+  -> Sem r a+runReaderAwsEnvDiscover f = do+  logger' <- embed $ AWS.newLogger AWS.Debug IO.stdout+  discoveredAwsEnv <- embed $ AWS.newEnv AWS.discover+  let awsEnv = discoveredAwsEnv { AWS.logger = logger' }+  runReader awsEnv f++sendAws :: ()+  => AWS.AWSRequest a+  => Member (Embed m) r+  => Member (Error AWS.Error) r+  => Member (Reader AWS.Env) r+  => MonadIO m+  => Typeable (AWS.AWSResponse a)+  => Typeable a+  => a+  -> Sem r (AWS.AWSResponse a)+sendAws req = do+  envAws <- ask @AWS.Env+  result <- embed $ liftIO $ runResourceT $ AWS.sendEither envAws req+  fromEither result
hedgehog/HaskellWorks/Polysemy/Hedgehog/Property.hs view
@@ -32,16 +32,16 @@         , Final (H.PropertyT IO)         ] ()   -> H.Property-propertyOnce f = f-  & interpretLogDataLog-  & setLogLevel (Just Info)-  & interpretDataLogHedgehog formatLogEntry getLogEntryCallStack-  & interpretDataLogHedgehog id (const GHC.callStack)-  & interpretTimeGhc-  & hedgehogToPropertyFinal-  & runEmbedded liftIO-  & embedToFinal @(H.PropertyT IO)-  & runResource-  & runFinal-  & H.property-  & H.withTests 1+propertyOnce f =+    f & interpretLogDataLog+      & setLogLevel (Just Info)+      & interpretDataLogHedgehog formatLogEntry getLogEntryCallStack+      & interpretDataLogHedgehog id (const GHC.callStack)+      & interpretTimeGhc+      & hedgehogToPropertyFinal+      & runEmbedded liftIO+      & embedToFinal @(H.PropertyT IO)+      & runResource+      & runFinal+      & H.property+      & H.withTests 1
hw-polysemy.cabal view
@@ -1,6 +1,6 @@ cabal-version:          3.4 name:                   hw-polysemy-version:                0.2.11.1+version:                0.2.12.0 synopsis:               Opinionated polysemy library description:            Opinionated polysemy library. license:                Apache-2.0@@ -22,6 +22,8 @@ common aeson                      { build-depends: aeson                                       < 2.3    } common aeson-pretty               { build-depends: aeson-pretty                                < 0.9    } common async                      { build-depends: async                                       < 2.3    }+common amazonka                   { build-depends: amazonka                   >= 2          && < 3      }+common amazonka-s3                { build-depends: amazonka-s3                >= 2          && < 3      } common bytestring                 { build-depends: bytestring                                  < 0.13   } common contravariant              { build-depends: contravariant                               < 1.6    } common Diff                       { build-depends: Diff                                        < 0.6    }@@ -30,6 +32,7 @@ common filepath                   { build-depends: filepath                                    < 1.6    } common generic-lens               { build-depends: generic-lens                                < 2.3    } common ghc-prim                   { build-depends: ghc-prim                                    < 0.12   }+common http-conduit               { build-depends: http-conduit               >= 2.3        && < 2.4    } common hedgehog                   { build-depends: hedgehog                                    < 1.5    } common network                    { build-depends: network                                     < 3.3    } common lens                       { build-depends: lens                                        < 5.4    }@@ -43,9 +46,11 @@ common resourcet                  { build-depends: resourcet                                   < 1.4    } common stm                        { build-depends: stm                                         < 2.6    } common tasty                      { build-depends: tasty                                       < 1.6    }+common tasty-discover             { build-depends: tasty-discover                              < 6      } common tasty-hedgehog             { build-depends: tasty-hedgehog                              < 1.5    } common temporary                  { build-depends: temporary                                   < 1.4    } common text                       { build-depends: text                                        < 3      }+common testcontainers             { build-depends: testcontainers                              < 0.6    } common time                       { build-depends: time                                        < 2      } common transformers               { build-depends: transformers                                < 0.7    } common unliftio                   { build-depends: unliftio                                    < 0.3    }@@ -55,9 +60,11 @@   if os(windows)     build-depends:      Win32   >= 2.5.4.1 -common hw-polysemy                { build-depends: hw-polysemy                                          }-common hw-polysemy-core           { build-depends: hw-polysemy:core                                     }-common hw-polysemy-hedgehog       { build-depends: hw-polysemy:hedgehog                                 }+common hw-polysemy                            { build-depends: hw-polysemy                                          }+common hw-polysemy-amazonka                   { build-depends: hw-polysemy:amazonka                                 }+common hw-polysemy-core                       { build-depends: hw-polysemy:core                                     }+common hw-polysemy-hedgehog                   { build-depends: hw-polysemy:hedgehog                                 }+common hw-polysemy-testcontainers-localstack  { build-depends: hw-polysemy:testcontainers-localstack                }  flag werror   description: Enable -Werror@@ -201,6 +208,38 @@   hs-source-dirs:       hedgehog   default-language:     Haskell2010 +library amazonka+  import:               base, project-config,+                        amazonka,+                        hw-polysemy-core,+                        resourcet,+  visibility:           public+  exposed-modules:      HaskellWorks.Polysemy.Amazonka+  hs-source-dirs:       amazonka+  default-language:     Haskell2010++library testcontainers-localstack+  import:               base, project-config,+                        amazonka,+                        bytestring,+                        generic-lens,+                        http-conduit,+                        hw-polysemy-amazonka,+                        hw-polysemy-core,+                        hw-polysemy-hedgehog,+                        lens,+                        resourcet,+                        resourcet,+                        testcontainers,+                        text,+                        time,+  visibility:           public+  exposed-modules:      HaskellWorks.Polysemy.Amazonka.LocalStack+                        HaskellWorks.TestContainers.LocalStack+                        HaskellWorks.TestContainers.LocalStack.Types+  hs-source-dirs:       testcontainers-localstack+  default-language:     Haskell2010+ library   import:               base, project-config,                         hw-polysemy-core,@@ -249,12 +288,21 @@  test-suite hw-polysemy-test   import:               base, project-config,+                        amazonka,+                        amazonka-s3,                         filepath,+                        generic-lens,+                        hw-polysemy-amazonka,+                        hw-polysemy-core,+                        hw-polysemy-testcontainers-localstack,                         hw-polysemy,-                        polysemy,+                        lens,                         polysemy-log,+                        polysemy,+                        tasty-discover,                         tasty-hedgehog,                         tasty,+                        testcontainers,                         text,   default-language:     Haskell2010   type:                 exitcode-stdio-1.0@@ -262,4 +310,6 @@   hs-source-dirs:       test   main-is:              Main.hs   other-modules:        HaskellWorks.Polysemy.HedgehogSpec+                        HaskellWorks.Polysemy.TestContainers.LocalStackSpec+                        Test.Polysemy.Env   ghc-options:          -threaded -rtsopts -with-rtsopts=-N -with-rtsopts=-T
+ test/HaskellWorks/Polysemy/TestContainers/LocalStackSpec.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE GADTs             #-}+{-# LANGUAGE OverloadedStrings #-}++{- HLINT ignore "Use let" -}++module HaskellWorks.Polysemy.TestContainers.LocalStackSpec+  ( tasty_local_stack+  ) where++import           Prelude++import           HaskellWorks.TestContainers.LocalStack+import           Test.Polysemy.Env+import qualified Test.Tasty                             as Tasty+import qualified Test.Tasty.Hedgehog                    as H++import qualified Amazonka.S3                            as AWS+import           HaskellWorks.Polysemy.Amazonka+import           HaskellWorks.Polysemy.Hedgehog+import           HaskellWorks.Prelude+import           Polysemy+import qualified TestContainers.Tasty                   as TC++{- HLINT ignore "Use camelCase" -}++tasty_local_stack :: Tasty.TestTree+tasty_local_stack =+  TC.withContainers setupContainers $ \start ->+    H.testProperty "Local stack test" $ propertyOnce $ runLocalTestEnv start $ do+      ep <- embed start+      jotShow_ ep+      listBucketsReq <- pure AWS.newListBuckets++      listBucketResp <- sendAws listBucketsReq+        & trapFail++      jotShow_ listBucketResp
+ test/Test/Polysemy/Env.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DataKinds           #-}+{-# LANGUAGE FlexibleContexts    #-}+{-# LANGUAGE FlexibleInstances   #-}+{-# LANGUAGE GADTs               #-}+{-# LANGUAGE PolyKinds           #-}+{-# LANGUAGE RankNTypes          #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeOperators       #-}++{- HLINT ignore "Use let" -}++module Test.Polysemy.Env+  ( EnvironmentVariableMissing(..)+  , runLocalTestEnv+  , runTestEnv+  , runReaderFromEnvOrFail+  ) where++import qualified Amazonka                                  as AWS+import           HaskellWorks.Polysemy.Amazonka+import           HaskellWorks.Polysemy.Amazonka.LocalStack+import           HaskellWorks.Polysemy.Error+import           HaskellWorks.Polysemy.Hedgehog+import           HaskellWorks.Polysemy.System.Environment+import           HaskellWorks.Prelude+import           HaskellWorks.TestContainers.LocalStack+import           Polysemy+import           Polysemy.Error+import           Polysemy.Reader++newtype EnvironmentVariableMissing =+  EnvironmentVariableMissing String+  deriving (Show, Eq)++runTestEnv :: ()+  => HasCallStack+  => Member (Embed IO) r+  => Member Hedgehog r+  => Sem+        ( Reader AWS.Env+        : r)+      a+  -> Sem r a+runTestEnv f =+  withFrozenCallStack $ f+    & runReaderAwsEnvDiscover++runLocalTestEnv :: ()+  => HasCallStack+  => Member (Embed IO) r+  => Member Hedgehog r+  => IO LocalStackEndpoint+  -> Sem+        ( Reader AWS.Env+        : r)+      a+  -> Sem r a+runLocalTestEnv mk f =+  withFrozenCallStack $ f+    & runReaderLocalAwsEnvDiscover mk++runReaderFromEnvOrFail :: forall i r a. ()+  => Member (Embed IO) r+  => Member Hedgehog r+  => (String -> i)+  -> String+  -> Sem (Reader i ': r) a+  -> Sem r a+runReaderFromEnvOrFail f envVar action = do+  env <- lookupEnv envVar+    & onNothingM (throw (EnvironmentVariableMissing envVar) & trapFail)++  runReader (f env) action
+ testcontainers-localstack/HaskellWorks/Polysemy/Amazonka/LocalStack.hs view
@@ -0,0 +1,36 @@+{- HLINT ignore "Use let" -}++module HaskellWorks.Polysemy.Amazonka.LocalStack+  ( runReaderLocalAwsEnvDiscover+  ) where++import qualified Amazonka                               as AWS+import qualified Amazonka.Auth                          as AWS+import           Control.Lens                           ((%~), (.~), (^.))+import           Data.Generics.Product.Any+import           HaskellWorks.Prelude+import           HaskellWorks.TestContainers.LocalStack+import           Polysemy+import           Polysemy.Reader+import qualified System.IO                              as IO++runReaderLocalAwsEnvDiscover :: ()+  => Member (Embed IO) r+  => IO LocalStackEndpoint+  -> Sem (Reader AWS.Env : r) a+  -> Sem r a+runReaderLocalAwsEnvDiscover mk f = do+  ep <- embed mk++  logger' <- embed $ AWS.newLogger AWS.Debug IO.stdout++  let creds = AWS.fromKeys (AWS.AccessKey "test") (AWS.SecretKey "test")++  credEnv <- embed $ AWS.newEnv (AWS.runCredentialChain [pure . creds])++  awsEnv <- pure $+    credEnv+      & the @"logger" .~ logger'+      & the @"overrides" %~ (. AWS.setEndpoint False "localhost" (ep ^. the @"port"))++  runReader awsEnv f
+ testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE GADTs             #-}+{-# LANGUAGE OverloadedStrings #-}++{- HLINT ignore "Use camelCase" -}++module HaskellWorks.TestContainers.LocalStack+  ( LocalStackEndpoint(..)+  , setupContainers+  , waitForLocalStack+  ) where++import           Prelude++import           Control.Concurrent                           (threadDelay)+import           Control.Exception                            (try)+import           Control.Monad                                (when)+import           Control.Monad.IO.Class+import qualified Data.ByteString.Lazy                         as LBS+import           Data.Function+import qualified Data.Text                                    as T+import           Data.Time.Clock.POSIX                        (getPOSIXTime)+import           HaskellWorks.TestContainers.LocalStack.Types (LocalStackEndpoint (LocalStackEndpoint))+import qualified HaskellWorks.TestContainers.LocalStack.Types as Z+import           Network.HTTP.Conduit                         (HttpException,+                                                               simpleHttp)+import qualified System.Environment                           as IO+import qualified TestContainers.Tasty                         as TC++-- | Sets up and runs the containers required for this test suite.+setupContainers :: TC.MonadDocker m => m LocalStackEndpoint+setupContainers = do+  authToken <- liftIO $ IO.lookupEnv "LOCALSTACK_AUTH_TOKEN"+  -- Launch the container based on the postgres image.+  localstackContainer <- TC.run $ TC.containerRequest (TC.fromTag "localstack/localstack-pro:3.1.0")+    & TC.setEnv [("LOCALSTACK_AUTH_TOKEN", maybe "" T.pack authToken)]+    -- Expose the port 4566 from within the container. The respective port+    -- on the host machine can be looked up using `containerPort` (see below).+    & TC.setExpose+        ( mconcat+            [ [ 4566 ]+            , fmap fromInteger [4510 .. 4559]+            ]+        )+    -- Wait until the container is ready to accept requests. `run` blocks until+    -- readiness can be established.+    & TC.setWaitingFor (TC.waitUntilMappedPortReachable 4566)++  -- Look up the corresponding port on the host machine for the exposed port 4566.+  let localStackPort = TC.containerPort localstackContainer 4566++  liftIO $ waitForLocalStack "localhost" localStackPort 8++  pure $ LocalStackEndpoint+    { Z.host = "0.0.0.0"+    , Z.port = localStackPort+    }++waitForLocalStack :: String -> Int -> Int -> IO ()+waitForLocalStack host port timeout = do+    startTime <- getPOSIXTime+    let url = "http://" ++ host ++ ":" ++ show port+    checkLoop startTime url+  where+    checkLoop startTime url = do+        result <- try $ simpleHttp url :: IO (Either HttpException LBS.ByteString)+        case result of+            Right _ -> putStrLn "LocalStack is ready!"+            Left _  -> do+                currentTime <- getPOSIXTime+                let elapsedTime = currentTime - startTime+                when (elapsedTime < fromIntegral timeout) $ do+                    threadDelay 1000000  -- Wait for 1 second+                    checkLoop startTime url+                when (elapsedTime >= fromIntegral timeout) $ do+                    putStrLn "Timeout reached. LocalStack is not ready."
+ testcontainers-localstack/HaskellWorks/TestContainers/LocalStack/Types.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GADTs         #-}++module HaskellWorks.TestContainers.LocalStack.Types+  ( LocalStackEndpoint(..)+  ) where++import           HaskellWorks.Prelude++data LocalStackEndpoint = LocalStackEndpoint+  { host :: String+  , port :: Int+  } deriving (Eq, Show, Generic)