packages feed

pointed 5 → 5.0.1

raw patch · 5 files changed

+216/−15 lines, 5 filesdep +generic-derivingdep +ghc-primdep ~basedep ~containersdep ~hashablenew-uploader

Dependencies added: generic-deriving, ghc-prim

Dependency ranges changed: base, containers, hashable, semigroupoids, stm

Files

.travis.yml view
@@ -1,4 +1,15 @@-language: haskell+# This Travis job script has been generated by a script via+#+#   runghc make_travis_yml_2.hs '-o' '.travis.yml' '--irc-channel=irc.freenode.org#haskell-lens' '--no-no-tests-no-bench' '--no-installed' 'cabal.project'+#+# For more information, see https://github.com/hvr/multi-ghc-travis+#+language: c+sudo: false++git:+  submodules: false  # whether to recursively clone submodules+ notifications:   irc:     channels:@@ -6,3 +17,122 @@     skip_join: true     template:       - "\x0313pointed\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"++cache:+  directories:+    - $HOME/.cabal/packages+    - $HOME/.cabal/store++before_cache:+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log+  # remove files that are regenerated by 'cabal update'+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar+  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx++  - rm -rfv $HOME/.cabal/packages/head.hackage++matrix:+  include:+    - compiler: "ghc-7.4.2"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-7.4.2], sources: [hvr-ghc]}}+    - compiler: "ghc-7.6.3"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-7.6.3], sources: [hvr-ghc]}}+    - compiler: "ghc-7.8.4"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-7.8.4], sources: [hvr-ghc]}}+    - compiler: "ghc-7.10.3"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-7.10.3], sources: [hvr-ghc]}}+    - compiler: "ghc-8.0.2"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-8.0.2], sources: [hvr-ghc]}}+    - compiler: "ghc-8.2.2"+    # env: TEST=--disable-tests BENCH=--disable-benchmarks+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.0,ghc-8.2.2], sources: [hvr-ghc]}}+    - compiler: "ghc-8.4.1"+      env: GHCHEAD=true+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.4.1], sources: [hvr-ghc]}}+    - compiler: "ghc-head"+      env: GHCHEAD=true+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}}++  allow_failures:+    - compiler: "ghc-8.4.1"+    - compiler: "ghc-head"++before_install:+  - HC=${CC}+  - HCPKG=${HC/ghc/ghc-pkg}+  - unset CC+  - ROOTDIR=$(pwd)+  - mkdir -p $HOME/.local/bin+  - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"+  - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))+  - echo $HCNUMVER++install:+  - cabal --version+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"+  - BENCH=${BENCH---enable-benchmarks}+  - TEST=${TEST---enable-tests}+  - HADDOCK=${HADDOCK-true}+  - INSTALLED=${INSTALLED-true}+  - GHCHEAD=${GHCHEAD-false}+  - travis_retry cabal update -v+  - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"+  - rm -fv cabal.project cabal.project.local+  # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage+  - |+    if $GHCHEAD; then+      sed -i.bak 's/-- allow-newer:.*/allow-newer: *:base, *:template-haskell, *:ghc, *:Cabal/' ${HOME}/.cabal/config++      echo 'repository head.hackage'                                                        >> ${HOME}/.cabal/config+      echo '   url: http://head.hackage.haskell.org/'                                       >> ${HOME}/.cabal/config+      echo '   secure: True'                                                                >> ${HOME}/.cabal/config+      echo '   root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> ${HOME}/.cabal/config+      echo '              2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> ${HOME}/.cabal/config+      echo '              8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> ${HOME}/.cabal/config+      echo '   key-threshold: 3'                                                            >> ${HOME}/.cabal.config++      cabal new-update head.hackage -v+    fi+  - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'+  - "printf 'packages: \".\"\\n' > cabal.project"+  - cat cabal.project+  - if [ -f "./configure.ac" ]; then+      (cd "." && autoreconf -i);+    fi+  - rm -f cabal.project.freeze+  - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all+  - rm -rf "."/.ghc.environment.* "."/dist+  - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)++# Here starts the actual work to be performed for the package under test;+# any command which exits with a non-zero exit code causes the build to fail.+script:+  # test that source-distributions can be generated+  - (cd "." && cabal sdist)+  - mv "."/dist/pointed-*.tar.gz ${DISTDIR}/+  - cd ${DISTDIR} || false+  - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;+  - "printf 'packages: pointed-*/*.cabal\\n' > cabal.project"+  - cat cabal.project+++  # build & run tests, build benchmarks+  - cabal new-build -w ${HC} ${TEST} ${BENCH} all++  # cabal check+  - (cd pointed-* && cabal check)++  # haddock+  - rm -rf ./dist-newstyle+  - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi++# REGENDATA ["-o",".travis.yml","--irc-channel=irc.freenode.org#haskell-lens","--no-no-tests-no-bench","--no-installed","cabal.project"]+# EOF
CHANGELOG.markdown view
@@ -1,3 +1,12 @@+5.0.1+-----+* Add `Pointed` and `Copointed` instances for various types from `GHC.Generics`.+* Do not attempt to support Safe Haskell anymore.++5+-+* Require `kan-extensions-5`.+ 4.2.1 ----- * Added (largely unsupported) options to build without almost all of the dependencies for advanced users
pointed.cabal view
@@ -1,6 +1,6 @@ name:          pointed category:      Data-version:       5+version:       5.0.1 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -11,8 +11,15 @@ bug-reports:   http://github.com/ekmett/pointed/issues copyright:     Copyright (C) 2008-2016 Edward A. Kmett synopsis:      Pointed and copointed data-description:   Pointed and copointed data+description:   Pointed and copointed data. build-type:    Simple+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.1 extra-source-files:   .travis.yml   README.markdown@@ -60,8 +67,14 @@   manual: True  library-  build-depends: base >= 4 && < 5,-                 data-default-class >= 0.0.1 && < 0.1+  build-depends: base >= 4.5 && < 5,+                 data-default-class >= 0.0.1 && < 0.2++  if impl(ghc >= 7.0 && < 7.2)+    build-depends: generic-deriving >= 1.11 && < 1.13++  if impl(ghc >= 7.2 && < 7.6)+    build-depends: ghc-prim    if flag(comonad)     build-depends: comonad >= 5 && < 6
src/Data/Copointed.hs view
@@ -1,8 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE TypeFamilies #-}-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702-{-# LANGUAGE Safe #-}-#endif+{-# LANGUAGE TypeOperators #-}  #ifndef MIN_VERSION_base #define MIN_VERSION_base(x,y,z) 0@@ -31,13 +29,14 @@ import Data.Functor.Bind #endif + #if defined(MIN_VERSION_semigroups) || (MIN_VERSION_base(4,9,0)) import Data.Semigroup as Semigroup import Data.List.NonEmpty (NonEmpty(..))-#else-import Data.Monoid #endif +import qualified Data.Monoid as Monoid+ #ifdef MIN_VERSION_tagged import Data.Tagged #endif@@ -60,6 +59,12 @@ import qualified Control.Monad.Trans.Writer.Strict as Strict #endif +#if defined(MIN_VERSION_generic_deriving)+import Generics.Deriving+#else+import GHC.Generics+#endif+ -- | 'Copointed' does not require a 'Functor', as the only relationship -- between 'copoint' and 'fmap' is given by a free theorem. @@ -92,10 +97,12 @@   copoint (StoreT wf s) = copoint wf s #endif -#if defined(MIN_VERSION_comonad) && !(MIN_VERSION_comonad(4,3,0))+#ifdef MIN_VERSION_comonad+#if !(MIN_VERSION_comonad(4,3,0)) instance (Copointed p, Copointed q) => Copointed (Coproduct p q) where   copoint = coproduct copoint copoint #endif+#endif  #ifdef MIN_VERSION_containers instance Copointed Tree where@@ -142,12 +149,15 @@   copoint = fst . copoint . Strict.runWriterT #endif -instance Copointed Semigroup.Dual where-  copoint = Semigroup.getDual+instance Copointed Monoid.Dual where+  copoint = Monoid.getDual -instance Copointed Semigroup.Sum where-  copoint = Semigroup.getSum+instance Copointed Monoid.Sum where+  copoint = Monoid.getSum +instance Copointed Monoid.Product where+  copoint = Monoid.getProduct+ #if defined(MIN_VERSION_semigroups) || (MIN_VERSION_base(4,9,0)) instance Copointed NonEmpty where   copoint ~(a :| _) = a@@ -190,3 +200,18 @@   copoint (MaybeApply (Right a)) = a #endif +instance Copointed Par1 where+  copoint = unPar1++instance Copointed f => Copointed (M1 i c f) where+  copoint = copoint . unM1++instance Copointed f => Copointed (Rec1 f) where+  copoint = copoint . unRec1++instance (Copointed f, Copointed g) => Copointed (f :+: g) where+  copoint (L1 a) = copoint a+  copoint (R1 a) = copoint a++instance (Copointed f, Copointed g) => Copointed (f :.: g) where+  copoint = copoint . copoint . unComp1
src/Data/Pointed.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fno-warn-deprecations #-}  #ifndef MIN_VERSION_base@@ -88,6 +89,12 @@ import qualified Data.HashMap.Lazy as HashMap #endif +#if defined(MIN_VERSION_generic_deriving)+import Generics.Deriving+#else+import GHC.Generics+#endif+ class Pointed p where   point :: a -> p a @@ -305,3 +312,20 @@   point = HashMap.singleton def #endif +instance Pointed U1 where+  point _ = U1++instance Pointed Par1 where+  point = Par1++instance Pointed f => Pointed (Rec1 f) where+  point = Rec1 . point++instance Pointed f => Pointed (M1 i c f) where+  point = M1 . point++instance (Pointed f, Pointed g) => Pointed (f :*: g) where+  point a = point a :*: point a++instance (Pointed f, Pointed g) => Pointed (f :.: g) where+  point = Comp1 . point . point