hw-polysemy 0.2.6.0 → 0.2.7.0
raw patch · 4 files changed
+265/−4 lines, 4 filesdep +aeson-prettyPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: aeson-pretty
API changes (from Hackage documentation)
+ 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: 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: 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: 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.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: 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.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: 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: eval :: forall r_amPo a_amCI. (Member Hedgehog r_amPo, HasCallStack) => a_amCI -> Sem r_amPo a_amCI
+ HaskellWorks.Polysemy.Hedgehog: eval :: forall r_amQj a_amDD. (Member Hedgehog r_amQj, HasCallStack) => a_amDD -> Sem r_amQj a_amDD
- HaskellWorks.Polysemy.Hedgehog: evalIO :: forall r_amPs a_amCM. (Member Hedgehog r_amPs, HasCallStack) => IO a_amCM -> Sem r_amPs a_amCM
+ HaskellWorks.Polysemy.Hedgehog: evalIO :: forall r_amQn a_amDH. (Member Hedgehog r_amQn, HasCallStack) => IO a_amDH -> Sem r_amQn a_amDH
- HaskellWorks.Polysemy.Hedgehog: evalM :: forall r_amPq a_amCL. (Member Hedgehog r_amPq, HasCallStack) => Sem r_amPq a_amCL -> Sem r_amPq a_amCL
+ HaskellWorks.Polysemy.Hedgehog: evalM :: forall r_amQl a_amDG. (Member Hedgehog r_amQl, HasCallStack) => Sem r_amQl a_amDG -> Sem r_amQl a_amDG
- HaskellWorks.Polysemy.Hedgehog: failWith :: forall r_amPw a_amCQ. (Member Hedgehog r_amPw, HasCallStack) => Maybe Diff -> String -> Sem r_amPw a_amCQ
+ HaskellWorks.Polysemy.Hedgehog: failWith :: forall r_amQr a_amDL. (Member Hedgehog r_amQr, HasCallStack) => Maybe Diff -> String -> Sem r_amQr a_amDL
- HaskellWorks.Polysemy.Hedgehog: failWithCustom :: forall r_amPz a_amCS. Member Hedgehog r_amPz => CallStack -> Maybe Diff -> String -> Sem r_amPz a_amCS
+ HaskellWorks.Polysemy.Hedgehog: failWithCustom :: forall r_amQu a_amDN. Member Hedgehog r_amQu => CallStack -> Maybe Diff -> String -> Sem r_amQu a_amDN
- HaskellWorks.Polysemy.Hedgehog: writeLog :: forall r_amPu. Member Hedgehog r_amPu => Log -> Sem r_amPu ()
+ HaskellWorks.Polysemy.Hedgehog: writeLog :: forall r_amQp. Member Hedgehog r_amQp => Log -> Sem r_amQp ()
- HaskellWorks.Polysemy.Hedgehog.Assert: evalIO :: forall r_amPs a_amCM. (Member Hedgehog r_amPs, HasCallStack) => IO a_amCM -> Sem r_amPs a_amCM
+ HaskellWorks.Polysemy.Hedgehog.Assert: evalIO :: forall r_amQn a_amDH. (Member Hedgehog r_amQn, HasCallStack) => IO a_amDH -> Sem r_amQn a_amDH
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: assertEquals :: forall r_amPl a_X0. (Member Hedgehog r_amPl, HasCallStack, Eq a_X0, Show a_X0) => a_X0 -> a_X0 -> Sem r_amPl ()
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: assertEquals :: forall r_amQg a_X0. (Member Hedgehog r_amQg, HasCallStack, Eq a_X0, Show a_X0) => a_X0 -> a_X0 -> Sem r_amQg ()
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: eval :: forall r_amPo a_amCI. (Member Hedgehog r_amPo, HasCallStack) => a_amCI -> Sem r_amPo a_amCI
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: eval :: forall r_amQj a_amDD. (Member Hedgehog r_amQj, HasCallStack) => a_amDD -> Sem r_amQj a_amDD
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalIO :: forall r_amPs a_amCM. (Member Hedgehog r_amPs, HasCallStack) => IO a_amCM -> Sem r_amPs a_amCM
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalIO :: forall r_amQn a_amDH. (Member Hedgehog r_amQn, HasCallStack) => IO a_amDH -> Sem r_amQn a_amDH
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalM :: forall r_amPq a_amCL. (Member Hedgehog r_amPq, HasCallStack) => Sem r_amPq a_amCL -> Sem r_amPq a_amCL
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: evalM :: forall r_amQl a_amDG. (Member Hedgehog r_amQl, HasCallStack) => Sem r_amQl a_amDG -> Sem r_amQl a_amDG
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWith :: forall r_amPw a_amCQ. (Member Hedgehog r_amPw, HasCallStack) => Maybe Diff -> String -> Sem r_amPw a_amCQ
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWith :: forall r_amQr a_amDL. (Member Hedgehog r_amQr, HasCallStack) => Maybe Diff -> String -> Sem r_amQr a_amDL
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWithCustom :: forall r_amPz a_amCS. Member Hedgehog r_amPz => CallStack -> Maybe Diff -> String -> Sem r_amPz a_amCS
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: failWithCustom :: forall r_amQu a_amDN. Member Hedgehog r_amQu => CallStack -> Maybe Diff -> String -> Sem r_amQu a_amDN
- HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: writeLog :: forall r_amPu. Member Hedgehog r_amPu => Log -> Sem r_amPu ()
+ HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog: writeLog :: forall r_amQp. Member Hedgehog r_amQp => Log -> Sem r_amQp ()
- HaskellWorks.Polysemy.Hedgehog.Eval: eval :: forall r_amPo a_amCI. (Member Hedgehog r_amPo, HasCallStack) => a_amCI -> Sem r_amPo a_amCI
+ HaskellWorks.Polysemy.Hedgehog.Eval: eval :: forall r_amQj a_amDD. (Member Hedgehog r_amQj, HasCallStack) => a_amDD -> Sem r_amQj a_amDD
- HaskellWorks.Polysemy.Hedgehog.Eval: evalIO :: forall r_amPs a_amCM. (Member Hedgehog r_amPs, HasCallStack) => IO a_amCM -> Sem r_amPs a_amCM
+ HaskellWorks.Polysemy.Hedgehog.Eval: evalIO :: forall r_amQn a_amDH. (Member Hedgehog r_amQn, HasCallStack) => IO a_amDH -> Sem r_amQn a_amDH
- HaskellWorks.Polysemy.Hedgehog.Eval: evalM :: forall r_amPq a_amCL. (Member Hedgehog r_amPq, HasCallStack) => Sem r_amPq a_amCL -> Sem r_amPq a_amCL
+ HaskellWorks.Polysemy.Hedgehog.Eval: evalM :: forall r_amQl a_amDG. (Member Hedgehog r_amQl, HasCallStack) => Sem r_amQl a_amDG -> Sem r_amQl a_amDG
Files
- hedgehog/HaskellWorks/Polysemy/Hedgehog.hs +17/−0
- hedgehog/HaskellWorks/Polysemy/Hedgehog/Assert.hs +82/−3
- hedgehog/HaskellWorks/Polysemy/Hedgehog/Jot.hs +162/−0
- hw-polysemy.cabal +4/−1
hedgehog/HaskellWorks/Polysemy/Hedgehog.hs view
@@ -9,11 +9,16 @@ leftFail, leftFailM,+ leftFailJson,+ leftFailJsonM, catchFail, nothingFail, nothingFailM, requireHead, trapFail,+ trapFailJson,+ trapFailJsonPretty,+ trapFailYaml, failure, failMessage,@@ -30,6 +35,12 @@ jotShow, jotShow_,+ jotJson,+ jotJson_,+ jotJsonPretty,+ jotJsonPretty_,+ jotYaml,+ jotYaml_, jotWithCallstack, jot, jot_,@@ -42,6 +53,12 @@ jotIO_, jotShowM, jotShowM_,+ jotJsonM,+ jotJsonM_,+ jotJsonPrettyM,+ jotJsonPrettyM_,+ jotYamlM,+ jotYamlM_, jotShowIO, jotShowIO_, jotEach,
hedgehog/HaskellWorks/Polysemy/Hedgehog/Assert.hs view
@@ -2,11 +2,16 @@ ( Hedgehog, leftFail, leftFailM,+ leftFailJson,+ leftFailJsonM, nothingFail, nothingFailM, requireHead, catchFail, trapFail,+ trapFailJson,+ trapFailJsonPretty,+ trapFailYaml, evalIO, failure, failMessage,@@ -29,9 +34,16 @@ import Control.Lens ((^.))-import Data.Aeson (Value)+import Data.Aeson (ToJSON, Value)+import qualified Data.Aeson as J+import qualified Data.Aeson.Encode.Pretty as J import Data.Generics.Product.Any import qualified Data.List as L+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as LT+import qualified Data.Text.Lazy.Encoding as LT+import qualified Data.Yaml as Y import qualified GHC.Stack as GHC import HaskellWorks.Polysemy.Error import HaskellWorks.Polysemy.File@@ -65,6 +77,19 @@ Right a -> pure a Left e -> failMessage GHC.callStack ("Expected Right: " <> show e) +-- | Fail when the result is Left with the error message as JSON.+leftFailJson :: ()+ => Member Hedgehog r+ => ToJSON e+ => HasCallStack+ => Either e a+ -> Sem r a+leftFailJson r = withFrozenCallStack $ case r of+ Right a -> pure a+ Left e -> do+ let msg = LT.unpack $ LT.decodeUtf8 $ J.encode e+ failMessage GHC.callStack ("Expected Right: " <> msg)+ nothingFail :: () => Member Hedgehog r => HasCallStack@@ -99,6 +124,15 @@ leftFailM f = withFrozenCallStack $ f >>= leftFail +leftFailJsonM :: forall e r a. ()+ => Member Hedgehog r+ => ToJSON e+ => HasCallStack+ => Sem r (Either e a)+ -> Sem r a+leftFailJsonM f =+ withFrozenCallStack $ f >>= leftFailJson+ nothingFailM :: forall r a. () => Member Hedgehog r => HasCallStack@@ -123,8 +157,53 @@ => Show e => Sem (Error e ': r) a -> Sem r a-trapFail f =- withFrozenCallStack $ f & runError & leftFailM+trapFail f = do+ r <- withFrozenCallStack $ f & runError+ case r of+ Right a -> pure a+ Left e -> failMessage GHC.callStack $ show e++trapFailJson :: forall e r a.()+ => Member Hedgehog r+ => HasCallStack+ => ToJSON e+ => Sem (Error e ': r) a+ -> Sem r a+trapFailJson f = do+ r <- withFrozenCallStack $ f & runError+ case r of+ Right a -> pure a+ Left e -> do+ let msg = LT.unpack $ LT.decodeUtf8 $ J.encode e+ failMessage GHC.callStack msg++trapFailJsonPretty :: forall e r a.()+ => Member Hedgehog r+ => HasCallStack+ => ToJSON e+ => Sem (Error e ': r) a+ -> Sem r a+trapFailJsonPretty f = do+ r <- withFrozenCallStack $ f & runError+ case r of+ Right a -> pure a+ Left e -> do+ let msg = LT.unpack $ LT.decodeUtf8 $ J.encodePretty e+ failMessage GHC.callStack msg++trapFailYaml :: forall e r a.()+ => Member Hedgehog r+ => HasCallStack+ => ToJSON e+ => Sem (Error e ': r) a+ -> Sem r a+trapFailYaml f = do+ r <- withFrozenCallStack $ f & runError+ case r of+ Right a -> pure a+ Left e -> do+ let msg = T.unpack $ T.decodeUtf8 $ Y.encode e+ failMessage GHC.callStack msg requireHead :: () => Member Hedgehog r
hedgehog/HaskellWorks/Polysemy/Hedgehog/Jot.hs view
@@ -18,6 +18,18 @@ jotShowM_, jotShowIO, jotShowIO_,+ jotJson,+ jotJson_,+ jotJsonM,+ jotJsonM_,+ jotJsonPretty,+ jotJsonPretty_,+ jotJsonPrettyM,+ jotJsonPrettyM_,+ jotYaml,+ jotYaml_,+ jotYamlM,+ jotYamlM_, jotEach, jotEach_, jotEachM,@@ -31,12 +43,18 @@ jotTempFile, ) where +import Data.Aeson (ToJSON) +import qualified Data.Aeson as J+import qualified Data.Aeson.Encode.Pretty as J import qualified Data.ByteString.Lazy as LBS+import qualified Data.Text as T import qualified Data.Text as Text+import qualified Data.Text.Encoding as T import qualified Data.Text.Encoding as Text import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Encoding as LT+import qualified Data.Yaml as Y import qualified GHC.Stack as GHC import HaskellWorks.Polysemy.Prelude @@ -217,6 +235,150 @@ jotShowIO_ f = GHC.withFrozenCallStack $ do !a <- evalIO f jotWithCallstack GHC.callStack (show a)+ return ()++-- | Annotate the given value as JSON.+jotJson :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r a+jotJson a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encode b+ return b++-- | Annotate the given value as JSON.+jotJson_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r ()+jotJson_ a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encode b+ return ()++-- | Annotate the given value as JSON in a monadic context.+jotJsonM :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r a+jotJsonM a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encode b+ return b++-- | Annotate the given value as JSON in a monadic context.+jotJsonM_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r ()+jotJsonM_ a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encode b+ return ()++-- | Annotate the given value as JSON.+jotJsonPretty :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r a+jotJsonPretty a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encodePretty b+ return b++-- | Annotate the given value as JSON.+jotJsonPretty_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r ()+jotJsonPretty_ a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encodePretty b+ return ()++-- | Annotate the given value as JSON in a monadic context.+jotJsonPrettyM :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r a+jotJsonPrettyM a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encodePretty b+ return b++-- | Annotate the given value as JSON in a monadic context.+jotJsonPrettyM_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r ()+jotJsonPrettyM_ a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ LT.unpack $ LT.decodeUtf8 $ J.encodePretty b+ return ()++-- | Annotate the given value as JSON.+jotYaml :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r a+jotYaml a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ T.unpack $ T.decodeUtf8 $ Y.encode b+ return b++-- | Annotate the given value as JSON.+jotYaml_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => a+ -> Sem r ()+jotYaml_ a = GHC.withFrozenCallStack $ do+ !b <- eval a+ jotWithCallstack GHC.callStack $ T.unpack $ T.decodeUtf8 $ Y.encode b+ return ()++-- | Annotate the given value as JSON in a monadic context.+jotYamlM :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r a+jotYamlM a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ T.unpack $ T.decodeUtf8 $ Y.encode b+ return b++-- | Annotate the given value as JSON in a monadic context.+jotYamlM_ :: ()+ => Member Hedgehog r+ => GHC.HasCallStack+ => ToJSON a+ => Sem r a+ -> Sem r ()+jotYamlM_ a = GHC.withFrozenCallStack $ do+ !b <- evalM a+ jotWithCallstack GHC.callStack $ T.unpack $ T.decodeUtf8 $ Y.encode b return () -- | Annotate the each value in the given traversable.
hw-polysemy.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: hw-polysemy-version: 0.2.6.0+version: 0.2.7.0 synopsis: Opinionated polysemy library description: Opinionated polysemy library. license: Apache-2.0@@ -20,6 +20,7 @@ common base { build-depends: base >= 4.13 && < 5 } common aeson { build-depends: aeson < 2.3 }+common aeson-pretty { build-depends: aeson-pretty < 0.9 } common async { build-depends: async < 2.3 } common bytestring { build-depends: bytestring < 0.13 } common contravariant { build-depends: contravariant < 1.6 }@@ -152,6 +153,7 @@ library hedgehog import: base, project-config, aeson,+ aeson-pretty, async, bytestring, contravariant,@@ -168,6 +170,7 @@ polysemy, process, text,+ yaml, visibility: public exposed-modules: HaskellWorks.Polysemy.Hedgehog HaskellWorks.Polysemy.Hedgehog.Assert