unification-fd 0.11.0 → 0.11.1
raw patch · 6 files changed
+43/−75 lines, 6 filesdep ~basedep ~logictPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, logict
API changes (from Hackage documentation)
- Control.Unification.IntVar: instance Control.Monad.Logic.Class.MonadLogic m => Control.Monad.Logic.Class.MonadLogic (Control.Unification.IntVar.IntBindingT t m)
- Control.Unification.Ranked.IntVar: instance Control.Monad.Logic.Class.MonadLogic m => Control.Monad.Logic.Class.MonadLogic (Control.Unification.Ranked.IntVar.IntRBindingT t m)
+ Control.Unification.IntVar: instance (Control.Monad.Logic.Class.MonadLogic m, GHC.Base.MonadPlus m) => Control.Monad.Logic.Class.MonadLogic (Control.Unification.IntVar.IntBindingT t m)
+ Control.Unification.Ranked.IntVar: instance (Control.Monad.Logic.Class.MonadLogic m, GHC.Base.MonadPlus m) => Control.Monad.Logic.Class.MonadLogic (Control.Unification.Ranked.IntVar.IntRBindingT t m)
Files
- CHANGELOG +3/−0
- README.md +13/−33
- src/Control/Unification/IntVar.hs +1/−1
- src/Control/Unification/Ranked/IntVar.hs +1/−1
- src/Data/Functor/Fixedpoint.hs +1/−1
- unification-fd.cabal +24/−39
CHANGELOG view
@@ -1,3 +1,6 @@+0.11.1 (2021-02-24):+ - Migrating from TravisCI to GithubActions+ - Properly fixed the logict-0.7.1 issue. 0.11.0 (2021-02-23): - Made Unifiable derivable whenever we have a Generic1 instance. (h/t/ Roman Cheplyaka)
README.md view
@@ -1,43 +1,23 @@ unification-fd ==============-[](https://hackage.haskell.org/package/unification-fd) -[](http://packdeps.haskellers.com/specific?package=unification-fd)-[](https://travis-ci.org/wrengr/unification-fd) -[](https://circleci.com/gh/wrengr/unification-fd)+[](https://hackage.haskell.org/package/unification-fd)+[](https://github.com/wrengr/unification-fd/actions?query=workflow%3Aci)+[](http://packdeps.haskellers.com/specific?package=unification-fd) The unification-fd package offers generic functions for single-sorted first-order structural unification (think of programming in Prolog, or of the metavariables in type inference)[^1][^2]. The library *is* sufficient for implementing higher-rank type systems à la-Peyton Jones, Vytiniotis, Weirich, Shields, but bear in mind that+_Peyton Jones, Vytiniotis, Weirich, Shields_, but bear in mind that unification variables are the metavariables of type inference— not the type-variables. -## Install--This is a simple package and should be easy to install. You should-be able to use one of the following standard methods to install it.-- -- With cabal-install and without the source:- $> cabal install unification-fd- - -- With cabal-install and with the source already:- $> cd unification-fd- $> cabal install- - -- Without cabal-install, but with the source already:- $> cd unification-fd- $> runhaskell Setup.hs configure --user- $> runhaskell Setup.hs build- $> runhaskell Setup.hs test- $> runhaskell Setup.hs haddock --hyperlink-source- $> runhaskell Setup.hs copy- $> runhaskell Setup.hs register+## Build Warnings/Errors -The test step is optional and currently does nothing. The Haddock-step is also optional. If you see some stray lines that look like-this:+This is a simple package and should be easy to install; however,+on older setups you may encounter some of the following warnings/errors.+If during building you see some stray lines that look like this: mkUsageInfo: internal name? t{tv a7XM} @@ -62,10 +42,10 @@ * Rank2Types * MultiParamTypeClasses-* FunctionalDependencies - Alas, necessary for type inference-* FlexibleContexts - Necessary for practical use of MPTCs-* FlexibleInstances - Necessary for practical use of MPTCs-* UndecidableInstances - Needed for Show instances due to two-level types+* FunctionalDependencies - Alas, necessary for type inference.+* FlexibleContexts - Necessary for practical use of MPTCs.+* FlexibleInstances - Necessary for practical use of MPTCs.+* UndecidableInstances - Needed for `Show` instances due to two-level types. ## Description@@ -209,7 +189,7 @@ ## Links -* [Website](http://cl.indiana.edu/~wren/)+* [Website](https://wrengr.org/) * [Blog](http://winterkoninkje.dreamwidth.org/) * [Twitter](https://twitter.com/wrengr) * [Hackage](http://hackage.haskell.org/package/unification-fd)
src/Control/Unification/IntVar.hs view
@@ -140,7 +140,7 @@ -- provided that logict is compiled against the same mtl/monads-fd -- we're getting StateT from. Otherwise we'll get a bunch of warnings -- here.-instance (MonadLogic m) => MonadLogic (IntBindingT t m) where+instance (MonadLogic m, MonadPlus m) => MonadLogic (IntBindingT t m) where msplit (IBT m) = IBT (coerce `liftM` msplit m) where coerce Nothing = Nothing
src/Control/Unification/Ranked/IntVar.hs view
@@ -99,7 +99,7 @@ -- provided that logict is compiled against the same mtl/monads-fd -- we're getting StateT from. Otherwise we'll get a bunch of warnings -- here.-instance (MonadLogic m) => MonadLogic (IntRBindingT t m) where+instance (MonadLogic m, MonadPlus m) => MonadLogic (IntRBindingT t m) where msplit (IRBT m) = IRBT (coerce `liftM` msplit m) where coerce Nothing = Nothing
src/Data/Functor/Fixedpoint.hs view
@@ -41,7 +41,7 @@ -- the utility of two-level recursive types, see: -- -- * Tim Sheard (2001) /Generic Unification via Two-Level Types/--- /and Paramterized Modules/, Functional Pearl, ICFP.+-- /and Parameterized Modules/, Functional Pearl, ICFP. -- -- * Tim Sheard & Emir Pasalic (2004) /Two-Level Types and/ -- /Parameterized Modules/. JFP 14(5): 547--587. This is
unification-fd.cabal view
@@ -1,5 +1,5 @@ ------------------------------------------------------------------- wren gayle romano <wren@community.haskell.org> ~ 2021.02.23+-- wren gayle romano <wren@community.haskell.org> ~ 2021.02.24 ---------------------------------------------------------------- -- Hackage requires us to require Cabal-Version >=1.10; otherwise@@ -10,7 +10,7 @@ Build-Type: Simple Name: unification-fd-Version: 0.11.0+Version: 0.11.1 Stability: experimental Homepage: https://wrengr.org/software/hackage.html Author: wren gayle romano@@ -21,20 +21,22 @@ Category: Algebra, Algorithms, Compilers/Interpreters, Language, Logic, Unification Synopsis: Simple generic unification algorithms.-Description: Simple generic unification algorithms.+Description:+ Generic functions for single-sorted first-order structural+ unification (think of programming in Prolog, or of the metavariables+ in type inference). -- No longer compiles with GHC-6.12.1 since Data.Monoid does not -- export (<>) in Control.Unification.Types. The backwards compatibility -- is not considered worth adding CPP noise...--- Last I checked, it also worked with 7.6.1 and 7.8.2; but I don't--- have TravisCI enforcing those.+-- FIXME(2021.02.24): versions 7.x are no longer available on GitHub+-- for CI (at least not on ubuntu-latest); so we should probably+-- remove them from here+-- FIXME(2021.02.24): version 9.0.1 is not yet cached on GitHub for CI either. Tested-With:- GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2,- GHC == 8.2.1, GHC == 8.2.2,- GHC == 8.4.1, GHC == 8.4.2, GHC == 8.4.3, GHC == 8.4.4,- GHC == 8.6.1, GHC == 8.6.2, GHC == 8.6.3, GHC == 8.6.4, GHC == 8.6.5,- GHC == 8.8.1, GHC == 8.8.2, GHC == 8.8.3, GHC == 8.8.4,- GHC == 8.10.1, GHC == 8.10.2, GHC == 8.10.3+ GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3,+ GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5,+ GHC == 8.8.4, GHC == 8.10.3, GHC == 9.0.1 Extra-source-files: AUTHORS, README.md, CHANGELOG@@ -43,19 +45,6 @@ Location: https://github.com/wrengr/unification-fd -----------------------------------------------------------------Flag base4- Default: True- Description: base-4.0 emits "Prelude deprecated" messages in- order to get people to be explicit about which- version of base they use.--Flag splitBase- Default: True- Description: base-3.0 (GHC 6.8) broke out the packages: array,- bytestring, containers, directory, old-locale,- old-time, packedstring, pretty, process, random.------------------------------------------------------------------ Library -- With Cabal-Version: >= 1.10, the Default-Language field is now required. Default-Language: Haskell98@@ -72,27 +61,23 @@ , Control.Unification.Ranked.STVar , Control.Unification.Ranked.IntVar - -- logict 0.7.1 breaks the build (for now); cf.,+ -- N.B., logict 0.7.1 introduced breakage, but that+ -- should be resolved now. Cf., -- <https://github.com/Bodigrim/logict/issues/20#issuecomment-774528439>- Build-Depends: logict >= 0.4 && < 0.7.1- -- Require a version of base with Applicative.- -- We refuse to do without it any longer.- , base >= 2.0+ -- <https://github.com/wrengr/unification-fd/issues/14>+ Build-Depends: logict >= 0.4 && < 0.7.2+ -- N.B., Tasty requires base>=4.5.0.0; which+ -- means we aren't CI testing anything older than+ -- that anymore, so we might as well just require+ -- that version so we can remove the ancient base4+ -- and splitBase build flags.+ , base >= 4.5 && < 5+ , containers -- Require mtl-2 instead of monads-fd; because -- otherwise we get a clash mixing logict with -- StateT. And we want stuff from monads-fd, so -- we can't just fail over to the older mtl. , mtl >= 2.0-- if flag(base4)- Build-Depends: base >= 4 && < 5- else- Build-Depends: base < 4-- if flag(splitBase)- Build-depends: base >= 3.0, containers- else- Build-depends: base < 3.0 ---------------------------------------------------------------- ----------------------------------------------------------- fin.