Hello community, here is the log from the commit of package ghc-bifunctors for openSUSE:Factory checked in at 2019-05-09 10:09:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-bifunctors (Old) and /work/SRC/openSUSE:Factory/.ghc-bifunctors.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-bifunctors" Thu May 9 10:09:46 2019 rev:13 rq:700195 version:5.5.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-bifunctors/ghc-bifunctors.changes 2018-10-25 08:22:47.219899399 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-bifunctors.new.5148/ghc-bifunctors.changes 2019-05-09 10:09:47.817094508 +0200 @@ -1,0 +2,9 @@ +Tue Apr 30 09:23:08 UTC 2019 - psimons@suse.com + +- Update bifunctors to version 5.5.4. + 5.5.4 [2019.04.26] + ------------------ + * Support `th-abstraction-0.3` or later. + * Don't incur a `semigroup` dependency on recent GHCs. + +------------------------------------------------------------------- Old: ---- bifunctors-5.5.3.tar.gz New: ---- bifunctors-5.5.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-bifunctors.spec ++++++ --- /var/tmp/diff_new_pack.uWvq4J/_old 2019-05-09 10:09:48.265095791 +0200 +++ /var/tmp/diff_new_pack.uWvq4J/_new 2019-05-09 10:09:48.269095803 +0200 @@ -1,7 +1,7 @@ # # spec file for package ghc-bifunctors # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global pkg_name bifunctors %bcond_with tests Name: ghc-%{pkg_name} -Version: 5.5.3 +Version: 5.5.4 Release: 0 Summary: Collection Haskell 98 bifunctors, bifoldables and bitraversables License: BSD-2-Clause @@ -31,7 +31,6 @@ BuildRequires: ghc-comonad-devel BuildRequires: ghc-containers-devel BuildRequires: ghc-rpm-macros -BuildRequires: ghc-semigroups-devel BuildRequires: ghc-tagged-devel BuildRequires: ghc-template-haskell-devel BuildRequires: ghc-th-abstraction-devel ++++++ bifunctors-5.5.3.tar.gz -> bifunctors-5.5.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bifunctors-5.5.3/.travis.yml new/bifunctors-5.5.4/.travis.yml --- old/bifunctors-5.5.3/.travis.yml 2018-07-04 21:03:37.000000000 +0200 +++ new/bifunctors-5.5.4/.travis.yml 2001-09-09 03:46:40.000000000 +0200 @@ -1,11 +1,13 @@ # This Travis job script has been generated by a script via # -# runghc make_travis_yml_2.hs '-o' '.travis.yml' '--ghc-head' '--irc-channel=irc.freenode.org#haskell-lens' '--no-no-tests-no-bench' '--no-unconstrained' 'cabal.project' +# haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci' 'cabal.project' # -# For more information, see https://github.com/hvr/multi-ghc-travis +# For more information, see https://github.com/haskell-CI/haskell-ci +# +# version: 0.2.1 # language: c -sudo: false +dist: xenial git: submodules: false # whether to recursively clone submodules @@ -24,48 +26,38 @@ - $HOME/.cabal/store before_cache: - - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log + - rm -fv $CABALHOME/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 -fv $CABALHOME/packages/hackage.haskell.org/00-index.* + - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json + - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache + - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar + - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx - - rm -rfv $HOME/.cabal/packages/head.hackage + - rm -rfv $CABALHOME/packages/head.hackage matrix: include: - - compiler: "ghc-8.6.1" - env: GHCHEAD=true - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.6.1], sources: [hvr-ghc]}} - - compiler: "ghc-8.4.3" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}} + - compiler: "ghc-8.6.4" + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.6.4], sources: [hvr-ghc]}} + - compiler: "ghc-8.4.4" + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.4.4], sources: [hvr-ghc]}} - compiler: "ghc-8.2.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.2], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.2.2], sources: [hvr-ghc]}} - compiler: "ghc-8.0.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.2], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-8.0.2], sources: [hvr-ghc]}} - compiler: "ghc-7.10.3" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.10.3], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.10.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.2,ghc-7.8.4], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.8.4], sources: [hvr-ghc]}} - compiler: "ghc-7.6.3" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.6.3], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.6.3], sources: [hvr-ghc]}} - compiler: "ghc-7.4.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.4.2], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.4.2], sources: [hvr-ghc]}} - compiler: "ghc-7.2.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.2.2], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.2.2], sources: [hvr-ghc]}} - compiler: "ghc-7.0.4" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.0.4], sources: [hvr-ghc]}} + addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.4,ghc-7.0.4], sources: [hvr-ghc]}} - compiler: "ghc-head" env: GHCHEAD=true addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}} @@ -74,59 +66,60 @@ - compiler: "ghc-head" - compiler: "ghc-7.0.4" - compiler: "ghc-7.2.2" - - compiler: "ghc-8.6.1" before_install: - - HC=${CC} + - HC=/opt/ghc/bin/${CC} - HCPKG=${HC/ghc/ghc-pkg} - unset CC + - CABAL=/opt/ghc/bin/cabal + - CABALHOME=$HOME/.cabal + - export PATH="$CABALHOME/bin:$PATH" - 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 + - ${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} - - UNCONSTRAINED=${UNCONSTRAINED-true} - - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false} + - TEST=--enable-tests + - BENCH=--enable-benchmarks - GHCHEAD=${GHCHEAD-false} - - travis_retry cabal update -v - - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config" + - travis_retry ${CABAL} update -v + - sed -i.bak 's/^jobs:/-- jobs:/' $CABALHOME/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 's/-- allow-newer: .*/allow-newer: *:base/' ${HOME}/.cabal/config - for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" ${HOME}/.cabal/config; done + sed -i 's/-- allow-newer: .*/allow-newer: *:base/' $CABALHOME/config + for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" $CABALHOME/config; done - 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 + echo 'repository head.hackage' >> $CABALHOME/config + echo ' url: http://head.hackage.haskell.org/' >> $CABALHOME/config + echo ' secure: True' >> $CABALHOME/config + echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> $CABALHOME/config + echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> $CABALHOME/config + echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> $CABALHOME/config + echo ' key-threshold: 3' >> $CABALHOME.config - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$' + grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$' - cabal new-update head.hackage -v + ${CABAL} new-update head.hackage -v fi - - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$' - - "printf 'packages: \".\"\\n' > cabal.project" + - grep -Ev -- '^\s*--' $CABALHOME/config | grep -Ev '^\s*$' + - rm -f cabal.project + - touch cabal.project + - "printf 'packages: \".\"\\n' >> cabal.project" + - "printf 'write-ghc-environment-files: always\\n' >> cabal.project" - touch cabal.project.local - - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi" + - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(bifunctors)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true - cat cabal.project.local || true - - if [ -f "./configure.ac" ]; then - (cd "." && autoreconf -i); - fi + - 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 + - ${CABAL} new-freeze -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dry + - "cat \"cabal.project.freeze\" | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'" + - rm "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) @@ -134,26 +127,28 @@ # 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/bifunctors-*.tar.gz ${DISTDIR}/ + - ${CABAL} new-sdist all + - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ - cd ${DISTDIR} || false - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \; - - "printf 'packages: bifunctors-*/*.cabal\\n' > cabal.project" + - rm -f cabal.project + - touch cabal.project + - "printf 'packages: \"bifunctors-*/*.cabal\"\\n' >> cabal.project" + - "printf 'write-ghc-environment-files: always\\n' >> cabal.project" - touch cabal.project.local - - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi" + - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | grep -vE -- '^(bifunctors)$' | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done" - cat cabal.project || true - cat cabal.project.local || true # build & run tests, build benchmarks - - cabal new-build -w ${HC} ${TEST} ${BENCH} all - - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi + - ${CABAL} new-build -w ${HC} ${TEST} ${BENCH} all + - if [ "x$TEST" = "x--enable-tests" ]; then ${CABAL} new-test -w ${HC} ${TEST} ${BENCH} all; fi # cabal check - - (cd bifunctors-* && cabal check) + - (cd bifunctors-* && ${CABAL} check) # haddock - - rm -rf ./dist-newstyle - - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi + - ${CABAL} new-haddock -w ${HC} ${TEST} ${BENCH} all -# REGENDATA ["-o",".travis.yml","--ghc-head","--irc-channel=irc.freenode.org#haskell-lens","--no-no-tests-no-bench","--no-unconstrained","cabal.project"] +# REGENDATA ["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"] # EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bifunctors-5.5.3/CHANGELOG.markdown new/bifunctors-5.5.4/CHANGELOG.markdown --- old/bifunctors-5.5.3/CHANGELOG.markdown 2018-07-04 21:03:37.000000000 +0200 +++ new/bifunctors-5.5.4/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,8 @@ +5.5.4 [2019.04.26] +------------------ +* Support `th-abstraction-0.3` or later. +* Don't incur a `semigroup` dependency on recent GHCs. + 5.5.3 [2018.07.04] ------------------ * Make `biliftA2` a class method of `Biapplicative`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bifunctors-5.5.3/bifunctors.cabal new/bifunctors-5.5.4/bifunctors.cabal --- old/bifunctors-5.5.3/bifunctors.cabal 2018-07-04 21:03:37.000000000 +0200 +++ new/bifunctors-5.5.4/bifunctors.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,6 +1,6 @@ name: bifunctors category: Data, Functors -version: 5.5.3 +version: 5.5.4 license: BSD3 cabal-version: >= 1.8 license-file: LICENSE @@ -21,8 +21,8 @@ , GHC == 7.10.3 , GHC == 8.0.2 , GHC == 8.2.2 - , GHC == 8.4.3 - , GHC == 8.6.1 + , GHC == 8.4.4 + , GHC == 8.6.4 extra-source-files: .travis.yml CHANGELOG.markdown README.markdown source-repository head @@ -53,7 +53,7 @@ comonad >= 4 && < 6, containers >= 0.1 && < 0.7, template-haskell >= 2.4 && < 2.15, - th-abstraction >= 0.2.2 && < 0.3, + th-abstraction >= 0.2.2 && < 0.4, transformers >= 0.2 && < 0.6 if !impl(ghc > 8.2) @@ -62,7 +62,7 @@ if flag(tagged) build-depends: tagged >= 0.7.3 && < 1 - if flag(semigroups) + if flag(semigroups) && !impl(ghc >= 8.0) build-depends: semigroups >= 0.8.3.1 && < 1 if impl(ghc<7.9) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bifunctors-5.5.3/old-src/ghc801/Data/Bitraversable.hs new/bifunctors-5.5.4/old-src/ghc801/Data/Bitraversable.hs --- old/bifunctors-5.5.3/old-src/ghc801/Data/Bitraversable.hs 2018-07-04 21:03:37.000000000 +0200 +++ new/bifunctors-5.5.4/old-src/ghc801/Data/Bitraversable.hs 2001-09-09 03:46:40.000000000 +0200 @@ -86,7 +86,7 @@ -- -- [/composition/] -- @'Compose' . 'fmap' ('bitraverse' g1 g2) . 'bitraverse' f1 f2 --- ≡ 'traverse' ('Compose' . 'fmap' g1 . f1) ('Compose' . 'fmap' g2 . f2)@ +-- ≡ 'bitraverse' ('Compose' . 'fmap' g1 . f1) ('Compose' . 'fmap' g2 . f2)@ -- -- where an /applicative transformation/ is a function -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bifunctors-5.5.3/src/Data/Bifunctor/TH.hs new/bifunctors-5.5.4/src/Data/Bifunctor/TH.hs --- old/bifunctors-5.5.3/src/Data/Bifunctor/TH.hs 2018-07-04 21:03:37.000000000 +0200 +++ new/bifunctors-5.5.4/src/Data/Bifunctor/TH.hs 2001-09-09 03:46:40.000000000 +0200 @@ -350,17 +350,21 @@ deriveBiClass biClass opts name = do info <- reifyDatatype name case info of - DatatypeInfo { datatypeContext = ctxt - , datatypeName = parentName - , datatypeVars = vars - , datatypeVariant = variant - , datatypeCons = cons + DatatypeInfo { datatypeContext = ctxt + , datatypeName = parentName +#if MIN_VERSION_th_abstraction(0,3,0) + , datatypeInstTypes = instTys +#else + , datatypeVars = instTys +#endif + , datatypeVariant = variant + , datatypeCons = cons } -> do (instanceCxt, instanceType) - <- buildTypeInstance biClass parentName ctxt vars variant + <- buildTypeInstance biClass parentName ctxt instTys variant (:[]) `fmap` instanceD (return instanceCxt) (return instanceType) - (biFunDecs biClass opts parentName vars cons) + (biFunDecs biClass opts parentName instTys cons) -- | Generates a declaration defining the primary function(s) corresponding to a -- particular class (bimap for Bifunctor, bifoldr and bifoldMap for Bifoldable, and @@ -368,14 +372,14 @@ -- -- For why both bifoldr and bifoldMap are derived for Bifoldable, see Trac #7436. biFunDecs :: BiClass -> Options -> Name -> [Type] -> [ConstructorInfo] -> [Q Dec] -biFunDecs biClass opts parentName vars cons = +biFunDecs biClass opts parentName instTys cons = map makeFunD $ biClassToFuns biClass where makeFunD :: BiFun -> Q Dec makeFunD biFun = funD (biFunName biFun) [ clause [] - (normalB $ makeBiFunForCons biFun opts parentName vars cons) + (normalB $ makeBiFunForCons biFun opts parentName instTys cons) [] ] @@ -384,22 +388,26 @@ makeBiFun biFun opts name = do info <- reifyDatatype name case info of - DatatypeInfo { datatypeContext = ctxt - , datatypeName = parentName - , datatypeVars = vars - , datatypeVariant = variant - , datatypeCons = cons + DatatypeInfo { datatypeContext = ctxt + , datatypeName = parentName +#if MIN_VERSION_th_abstraction(0,3,0) + , datatypeInstTypes = instTys +#else + , datatypeVars = instTys +#endif + , datatypeVariant = variant + , datatypeCons = cons } -> -- We force buildTypeInstance here since it performs some checks for whether -- or not the provided datatype can actually have bimap/bifoldr/bitraverse/etc. -- implemented for it, and produces errors if it can't. - buildTypeInstance (biFunToClass biFun) parentName ctxt vars variant - >> makeBiFunForCons biFun opts parentName vars cons + buildTypeInstance (biFunToClass biFun) parentName ctxt instTys variant + >> makeBiFunForCons biFun opts parentName instTys cons -- | Generates a lambda expression for the given constructors. -- All constructors must be from the same type. makeBiFunForCons :: BiFun -> Options -> Name -> [Type] -> [ConstructorInfo] -> Q Exp -makeBiFunForCons biFun opts _parentName vars cons = do +makeBiFunForCons biFun opts _parentName instTys cons = do argNames <- mapM newName $ catMaybes [ Just "f" , Just "g" , guard (biFun == Bifoldr) >> Just "z" @@ -409,7 +417,7 @@ z = head others -- If we're deriving bifoldr, this will be well defined -- and useful. Otherwise, it'll be ignored. value = last others - lastTyVars = map varTToName $ drop (length vars - 2) vars + lastTyVars = map varTToName $ drop (length instTys - 2) instTys tvMap = Map.fromList $ zip lastTyVars [map1, map2] lamE (map varP argNames) . appsE @@ -613,15 +621,15 @@ -> DatatypeVariant -- ^ Are we dealing with a data family instance or not -> Q (Cxt, Type) -buildTypeInstance biClass tyConName dataCxt varTysOrig variant = do +buildTypeInstance biClass tyConName dataCxt instTysOrig variant = do -- Make sure to expand through type/kind synonyms! Otherwise, the -- eta-reduction check might get tripped up over type variables in a -- synonym that are actually dropped. -- (See GHC Trac #11416 for a scenario where this actually happened.) - varTysExp <- mapM resolveTypeSynonyms varTysOrig + varTysExp <- mapM resolveTypeSynonyms instTysOrig let remainingLength :: Int - remainingLength = length varTysOrig - 2 + remainingLength = length instTysOrig - 2 droppedTysExp :: [Type] droppedTysExp = drop remainingLength varTysExp @@ -687,7 +695,7 @@ remainingTysOrigSubst :: [Type] remainingTysOrigSubst = map (substNamesWithKindStar (union droppedKindVarNames kvNames')) - $ take remainingLength varTysOrig + $ take remainingLength instTysOrig isDataFamily :: Bool isDataFamily = case variant of