packages feed

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 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 ==============-[![Hackage version](https://img.shields.io/hackage/v/unification-fd.svg?style=flat)](https://hackage.haskell.org/package/unification-fd) -[![Hackage-Deps](https://img.shields.io/hackage-deps/v/unification-fd.svg?style=flat)](http://packdeps.haskellers.com/specific?package=unification-fd)-[![TravisCI Build Status](https://img.shields.io/travis/wrengr/unification-fd.svg?style=flat)](https://travis-ci.org/wrengr/unification-fd) -[![CircleCI Build Status](https://circleci.com/gh/wrengr/unification-fd.svg?style=shield&circle-token=b57517657c556be6fd8fca92b843f9e4cffaf8d1)](https://circleci.com/gh/wrengr/unification-fd)+[![Hackage version](https://img.shields.io/hackage/v/unification-fd.svg)](https://hackage.haskell.org/package/unification-fd)+[![Build Status](https://github.com/wrengr/unification-fd/workflows/ci/badge.svg)](https://github.com/wrengr/unification-fd/actions?query=workflow%3Aci)+[![Dependencies](https://img.shields.io/hackage-deps/v/unification-fd.svg?style=flat)](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.