yaya 0.5.2.1 → 0.6.0.0
raw patch · 2 files changed
+26/−16 lines, 2 filesdep +foldable1-classes-compatdep ~comonaddep ~doctestdep ~either
Dependencies added: foldable1-classes-compat
Dependency ranges changed: comonad, doctest, either, free, kan-extensions, lens, profunctors, strict, template-haskell, th-abstraction, transformers
Files
- README.md +2/−0
- yaya.cabal +24/−16
README.md view
@@ -8,6 +8,8 @@ How's this possible? You can’t have totality _and_ Turing-completeness, can you? Oh, but [you can](https://pdfs.semanticscholar.org/e291/5b546b9039a8cf8f28e0b814f6502630239f.pdf) – there is a particular type, `Partial a` (encoded with a fixed-point) that handles potential non-termination, akin to the way that `Maybe a` handles exceptional cases. It can be folded into `IO` in your main function, so that the runtime can execute a Turing-complete program that was modeled totally. +**NB**: The tests for this package are unfortunately included in `yaya-hedgehog` instead, to avoid a dependency cycle.+ ## organization This organization is intended to make this a lightly-opinionated library. You should only need to import one module (per package) into any module of yours.
yaya.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0 name: yaya-version: 0.5.2.1+version: 0.6.0.0 synopsis: Total recursion schemes. description: Recursion schemes allow you to separate recursion from your business logic – making your own operations simpler, more modular,@@ -149,7 +149,7 @@ -- TODO: Remove `Cabal` dep once haskell/cabal#3751 is fixed. Cabal ^>= {3.0.0, 3.2.0, 3.4.0, 3.6.0, 3.8.0, 3.10.0}, base ^>= {4.12.0, 4.13.0, 4.14.0, 4.15.0, 4.16.0, 4.17.0, 4.18.0, 4.19.0},- cabal-doctest ^>= 1.0.0+ cabal-doctest ^>= {1.0.0}, library import: defaults@@ -167,16 +167,25 @@ other-modules: Yaya.Fold.Native.Internal build-depends:- comonad,- either,- free,- kan-extensions,- lens,- profunctors,- strict,- template-haskell,- th-abstraction,- transformers,+ comonad ^>= 5.0.7,+ either ^>= 5,+ free ^>= {5.1.5, 5.2},+ kan-extensions ^>= 5.2,+ -- `Control.Lens` in lens < 5 is `Unsafe`+ lens ^>= {5, 5.1, 5.2},+ profunctors ^>= {5.5.2, 5.6},+ -- strict < 0.4 doesn’t export various combinators+ strict ^>= {0.4, 0.5},+ template-haskell ^>= {2.14.0, 2.15.0, 2.16.0, 2.17.0, 2.18.0, 2.19.0, 2.20.0, 2.21.0},+ -- th-abstraction < 0.3 has different field names+ th-abstraction ^>= {0.4.1, 0.6.0},+ transformers ^>= {0.5.5, 0.6.1},+ -- NB: foldable-classes-compat is a transitive dependency … depending on+ -- which version of other dependencies (specifically,+ -- indexed-traversable) we select. However, `-trust` only works for+ -- packages in the dependency graph, so we make it explicit here for the+ -- times that it doesn’t get included transitively.+ foldable1-classes-compat ^>= {0.1}, ghc-options: -trust adjunctions -trust array@@ -186,7 +195,9 @@ -trust containers -trust distributive -trust exceptions+ -trust foldable1-classes-compat -trust ghc-prim+ -trust hashable -trust lens -trust profunctors -trust semigroupoids@@ -194,9 +205,6 @@ -trust template-haskell -trust text -trust transformers-compat- if impl(ghc < 9.6)- ghc-options:- -trust foldable1-classes-compat test-suite doctests import: defaults@@ -204,7 +212,7 @@ hs-source-dirs: tests main-is: doctests.hs build-depends:- doctest ^>= {0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0},+ doctest ^>= {0.16.0, 0.18.1, 0.20.1, 0.21.1, 0.22.2}, yaya, -- TODO: The sections below here are necessary because we don’t have control -- over the generated `Build_doctests.hs` file. So we have to silence