diff --git a/free.cabal b/free.cabal new file mode 100644 index 0000000..b488bd3 --- /dev/null +++ b/free.cabal @@ -0,0 +1,167 @@ +name: free +category: Control, Monads +version: 5.1.9 +x-revision: 1 +license: BSD3 +cabal-version: 1.18 +license-file: LICENSE +author: Edward A. Kmett +maintainer: Edward A. Kmett +stability: provisional +homepage: http://github.com/ekmett/free/ +bug-reports: http://github.com/ekmett/free/issues +copyright: Copyright (C) 2008-2015 Edward A. Kmett +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.2 + , GHC == 8.4.4 + , GHC == 8.6.5 + , GHC == 8.8.4 + , GHC == 8.10.7 + , GHC == 9.0.2 + , GHC == 9.2.2 +synopsis: Monads for free +description: + Free monads are useful for many tree-like structures and domain specific languages. + . + If @f@ is a 'Functor' then the free 'Monad' on @f@ is the type + of trees whose nodes are labeled with the constructors of @f@. The word + \"free\" is used in the sense of \"unrestricted\" rather than \"zero-cost\": + @Free f@ makes no constraining assumptions beyond those given by @f@ and the + definition of 'Monad'. As used here it is a standard term from the + mathematical theory of adjoint functors. + . + Cofree comonads are dual to free monads. They provide convenient ways to talk + about branching streams and rose-trees, and can be used to annotate syntax + trees. The cofree comonad can be seen as a stream parameterized by a 'Functor' + that controls its branching factor. + . + More information on free monads, including examples, can be found in the + following blog posts: + + + +build-type: Simple +extra-source-files: + .ghci + .gitignore + .hlint.yaml + .vim.custom + README.markdown + CHANGELOG.markdown + doc/proof/Control/Comonad/Cofree/*.md + doc/proof/Control/Comonad/Trans/Cofree/*.md + examples/free-examples.cabal + examples/LICENSE + examples/*.hs + examples/*.lhs + include/free-common.h +extra-doc-files: + examples/*.hs + examples/*.lhs + +source-repository head + type: git + location: git://github.com/ekmett/free.git + +library + hs-source-dirs: src + include-dirs: include + includes: free-common.h + + default-language: Haskell2010 + default-extensions: CPP + other-extensions: + MultiParamTypeClasses + FunctionalDependencies + FlexibleInstances + UndecidableInstances + Rank2Types + GADTs + + build-depends: + base >= 4.5 && < 5, + comonad >= 5.0.8 && < 6, + containers >= 0.3 && < 0.7, + distributive >= 0.5.2 && < 1, + exceptions >= 0.10.4 && < 0.11, + indexed-traversable >= 0.1.1 && < 0.2, + semigroupoids >= 5.3.5 && < 6, + th-abstraction >= 0.4.2.0 && < 0.5, + transformers >= 0.3 && < 0.7, + transformers-base >= 0.4.5.2 && < 0.5, + template-haskell >= 2.7.0.0 && < 2.20 + + -- GHC-7.8 bundles transformers-0.3, + -- mtl-2.2.* requires transformers >=0.4 + if impl(ghc >=7.10) + build-depends: + mtl >= 2.2.2 && < 2.4 + else + build-depends: + mtl >= 2.1.3.1 && < 2.4 + + -- recent profunctors dropped support for GHCs older than 7.8 + if impl(ghc >=7.8) + build-depends: + profunctors >= 5.6.1 && < 6 + else + build-depends: + profunctors >= 5.2.2 && < 5.3 + + if !impl(ghc >= 8.2) + build-depends: bifunctors >= 5.5.9 && < 6 + + if !impl(ghc >= 8.0) + build-depends: semigroups >= 0.18.5 && < 1 + + -- Ensure Data.Functor.Classes is always available + if impl(ghc >= 7.10) + build-depends: transformers >= 0.4.2.0 + else + build-depends: transformers-compat >= 0.5.1.0 && <0.8 + + exposed-modules: + Control.Applicative.Free + Control.Applicative.Free.Fast + Control.Applicative.Free.Final + Control.Applicative.Trans.Free + Control.Alternative.Free + Control.Alternative.Free.Final + Control.Comonad.Cofree + Control.Comonad.Cofree.Class + Control.Comonad.Trans.Cofree + Control.Comonad.Trans.Coiter + Control.Monad.Free + Control.Monad.Free.Ap + Control.Monad.Free.Church + Control.Monad.Free.Class + Control.Monad.Free.TH + Control.Monad.Trans.Free + Control.Monad.Trans.Free.Ap + Control.Monad.Trans.Free.Church + Control.Monad.Trans.Iter + + other-modules: + Data.Functor.Classes.Compat + + ghc-options: -Wall + + -- See https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#base-4.9.0.0 + if impl(ghc >= 8.0) + ghc-options: -Wcompat -Wnoncanonical-monad-instances + + if !impl(ghc >= 8.8) + ghc-options: -Wnoncanonical-monadfail-instances + else + build-depends: fail == 4.9.* + + if impl(ghc >= 9.0) + -- these flags may abort compilation with GHC-8.10 + -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295 + ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode + + x-docspec-extra-packages: tagged diff --git a/ghc-free.changes b/ghc-free.changes index 0ee9167..861df2d 100644 --- a/ghc-free.changes +++ b/ghc-free.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Jul 23 18:31:45 UTC 2022 - Peter Simons + +- Update free to version 5.1.9 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + ------------------------------------------------------------------- Sun Jun 26 16:02:11 UTC 2022 - Peter Simons diff --git a/ghc-free.spec b/ghc-free.spec index e6c1c97..c5118ea 100644 --- a/ghc-free.spec +++ b/ghc-free.spec @@ -24,6 +24,7 @@ Summary: Monads for free License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-comonad-devel BuildRequires: ghc-containers-devel @@ -72,6 +73,7 @@ This package provides the Haskell %{pkg_name} library development files. %prep %autosetup -n %{pkg_name}-%{version} +cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build