effable 0.3.0.0 → 0.3.1.0
raw patch · 3 files changed
+13/−20 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- README.md +2/−2
- effable.cabal +6/−2
- src/Data/Effable.hs +5/−16
README.md view
@@ -2,7 +2,7 @@ _A data structure for emission plans_ -+[](./LICENSE)   @@ -99,5 +99,5 @@ Since I am not a native English speaker, any natural language is likely to feature language quirks. AI models were not asked to identify or rectify such. -The above should not be understood as any opinion or even preference of mine - I both use and value development with higher degrees of AI autonomy than what was used in this (and many of my other) projects.+The above should not be understood as any opinion or even preference of mine - I both use and value development with higher degrees of AI autonomy than what was used in this project.
effable.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0 name: effable-version: 0.3.0.0+version: 0.3.1.0 stability: experimental category: Data synopsis: A data structure for emission plans@@ -14,6 +14,7 @@ license-file: LICENSE build-type: Simple tested-with:+ GHC == 9.14.1 GHC == 9.12.2 GHC == 9.10.2 GHC == 9.8.4@@ -34,6 +35,7 @@ manual: True flag isDev+ description: development conveniences default: False manual: True @@ -84,7 +86,9 @@ test-suite doctest import: , defaults- if !flag(doctest)+ -- no solution for 9.14 due to doctest-parallell+ -- (forcing with --alow-newer causes compilation error)+ if !flag(doctest) || impl(ghc >= 9.14) buildable: False hs-source-dirs: test/doctests type: exitcode-stdio-1.0
src/Data/Effable.hs view
@@ -430,8 +430,8 @@ Suppress the effects of emitting the value if an effectful predicate evaluates to False: @-'run' emit ('when'' (pure False) x) == pure ()-'run' emit ('when'' (pure True ) x) == 'run' emit x+'run' emit ('when'' (pure False) x) == pure ()+'run' emit ('when'' (pure True ) x) == 'run' emit x @ 'when'' has the distributive and commutation properties as those of 'wrap'.@@ -517,7 +517,7 @@ In light of 'byAction', 'ifThenElse' can be viewed as 'byAction' specialized to a domain with the two inhabitants 'True' and 'False': @-'ifThenElse' bM x y == 'byAction' bM (\b -> if b then x else y)+'ifThenElse' bM x y == 'byAction' bM (\\b -> if b then x else y) @ (Between the LHS and RHS the ordering of the internal representation will be different; that is however not observable with read-like actions.)@@ -638,7 +638,7 @@ 'embedAction' x == 'byAction' x 'embed' @ -(The same warning as that for 'byAction' applies.)+(The same warning as that for 'byAction' apply.) -} embedAction :: (Monad m, Enumerable a)@@ -708,17 +708,6 @@ >>> run emitConst (embed 'a' <> (silence $ embed 'b') <> embed 'c') Const "ac" -== Definition--'run' is the /monoid homomorphism/--@-from ('Effable' m b, '<>', 'mempty' )-to (m ()\ \ , '*>', 'pure' ())-@--and is natural in the emission function.- -} run :: Applicative m@@ -735,7 +724,7 @@ Methods of the 'Foldable' and 'Traversable' instances of the result type can be used e.g. to customize how the individual emission results are combined. @-'Data.Foldable.sequenceA_' ('runWith' emit x) == 'run' emit x+'Data.Foldable.sequenceA_' ('runWith' emit x) == 'run' emit x @ === Example