git.iko.soy/typeable/writer-cps-mtl
on master help sign in
9 files changed+302−207
since splitsnapshots
unifiedsplit
.gitignore+1 .travis.yml+113−72 Control/Monad/RWS/CPS.hs−49 Control/Monad/Writer/CPS.hs−29 README.md+8 package.yaml−43 src/Control/Monad/RWS/CPS.hs+82 src/Control/Monad/Writer/CPS.hs+77 writer-cps-mtl.cabal+21−14
.gitignore+1
@@ -2,3 +2,4 @@ dist
22attic
33.hpc
44.stack*
5+stack.yaml
.travis.yml+113−72
@@ -1,94 +1,135 @@
1−# This file has been generated -- see https://github.com/hvr/multi-ghc-travis
1+# This Travis job script has been generated by a script via
2+#
3+# runghc make_travis_yml_2.hs 'writer-cps-mtl.cabal'
4+#
5+# For more information, see https://github.com/haskell-CI/haskell-ci
6+#
27language: c
38sudo: false
49
10+git:
11+ submodules: false # whether to recursively clone submodules
12+
513cache:
614 directories:
7− - $HOME/.cabsnap
815 - $HOME/.cabal/packages
16+ - $HOME/.cabal/store
917
1018before_cache:
1119 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
12− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
20+ # remove files that are regenerated by 'cabal update'
21+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
22+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
23+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
24+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
25+ - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
26+
27+ - rm -rfv $HOME/.cabal/packages/head.hackage
1328
1429matrix:
1530 include:
16− - env: CABALVER=1.16 GHCVER=7.0.4
17− compiler: ": #GHC 7.0.4"
18− addons: {apt: {packages: [cabal-install-1.16,ghc-7.0.4], sources: [hvr-ghc]}}
19− - env: CABALVER=1.16 GHCVER=7.2.2
20− compiler: ": #GHC 7.2.2"
21− addons: {apt: {packages: [cabal-install-1.16,ghc-7.2.2], sources: [hvr-ghc]}}
22− - env: CABALVER=1.16 GHCVER=7.4.2
23− compiler: ": #GHC 7.4.2"
24− addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2], sources: [hvr-ghc]}}
25− - env: CABALVER=1.16 GHCVER=7.6.3
26− compiler: ": #GHC 7.6.3"
27− addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}}
28− - env: CABALVER=1.18 GHCVER=7.8.4
29− compiler: ": #GHC 7.8.4"
30− addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}
31− - env: CABALVER=1.22 GHCVER=7.10.3
32− compiler: ": #GHC 7.10.3"
33− addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}
34− - env: CABALVER=1.24 GHCVER=8.0.1
35− compiler: ": #GHC 8.0.1"
36− addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1], sources: [hvr-ghc]}}
31+ - compiler: "ghc-8.6.1"
32+ env: GHCHEAD=true
33+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.6.1], sources: [hvr-ghc]}}
34+ - compiler: "ghc-8.4.3"
35+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
36+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], sources: [hvr-ghc]}}
37+ - compiler: "ghc-8.2.1"
38+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
39+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.1], sources: [hvr-ghc]}}
40+ - compiler: "ghc-8.0.1"
41+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
42+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.1], sources: [hvr-ghc]}}
43+ - compiler: "ghc-7.10.3"
44+ # env: TEST=--disable-tests BENCH=--disable-benchmarks
45+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.10.3], sources: [hvr-ghc]}}
46+
47+ allow_failures:
48+ - compiler: "ghc-8.6.1"
3749
3850before_install:
39− - unset CC
40− - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
51+ - HC=${CC}
52+ - HCPKG=${HC/ghc/ghc-pkg}
53+ - unset CC
54+ - ROOTDIR=$(pwd)
55+ - mkdir -p $HOME/.local/bin
56+ - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
57+ - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
58+ - echo $HCNUMVER
4159
4260install:
43− - cabal --version
44− - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
45− - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
46− then
47− zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
48− $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
49− fi
50− - travis_retry cabal update -v
51− - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
52− - cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt
53− - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
54−
55−# check whether current requested install-plan matches cached package-db snapshot
56− - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
57− then
58− echo "cabal build-cache HIT";
59− rm -rfv .ghc;
60− cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
61− cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
62− else
63− echo "cabal build-cache MISS";
64− rm -rf $HOME/.cabsnap;
65− mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
66− cabal install --only-dependencies --enable-tests --enable-benchmarks;
67− fi
68−
69−# snapshot package-db on cache miss
70− - if [ ! -d $HOME/.cabsnap ];
71− then
72− echo "snapshotting package-db to build-cache";
73− mkdir $HOME/.cabsnap;
74− cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
75− cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
76− fi
61+ - cabal --version
62+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
63+ - BENCH=${BENCH---enable-benchmarks}
64+ - TEST=${TEST---enable-tests}
65+ - HADDOCK=${HADDOCK-true}
66+ - UNCONSTRAINED=${UNCONSTRAINED-true}
67+ - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
68+ - GHCHEAD=${GHCHEAD-false}
69+ - travis_retry cabal update -v
70+ - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
71+ - rm -fv cabal.project cabal.project.local
72+ # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage
73+ - |
74+ if $GHCHEAD; then
75+ sed -i 's/-- allow-newer: .*/allow-newer: *:base/' ${HOME}/.cabal/config
76+ 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
77+
78+ echo 'repository head.hackage' >> ${HOME}/.cabal/config
79+ echo ' url: http://head.hackage.haskell.org/' >> ${HOME}/.cabal/config
80+ echo ' secure: True' >> ${HOME}/.cabal/config
81+ echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> ${HOME}/.cabal/config
82+ echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> ${HOME}/.cabal/config
83+ echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> ${HOME}/.cabal/config
84+ echo ' key-threshold: 3' >> ${HOME}/.cabal.config
85+
86+ grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
87+
88+ cabal new-update head.hackage -v
89+ fi
90+ - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
91+ - "printf 'packages: \".\"\\n' > cabal.project"
92+ - touch cabal.project.local
93+ - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- writer-cps-mtl | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
94+ - cat cabal.project || true
95+ - cat cabal.project.local || true
96+ - if [ -f "./configure.ac" ]; then
97+ (cd "." && autoreconf -i);
98+ fi
99+ - rm -f cabal.project.freeze
100+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
101+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
102+ - rm -rf .ghc.environment.* "."/dist
103+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
77104
78105# Here starts the actual work to be performed for the package under test;
79106# any command which exits with a non-zero exit code causes the build to fail.
80107script:
81− - if [ -f configure.ac ]; then autoreconf -i; fi
82− - cabal configure --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging
83− - cabal build # this builds all libraries and executables (including tests/benchmarks)
84− - cabal test
85− - cabal check
86− - cabal sdist # tests that a source-distribution can be generated
87−
88−# Check that the resulting source distribution can be built & installed.
89−# If there are no other `.tar.gz` files in `dist`, this can be even simpler:
90−# `cabal install --force-reinstalls dist/*-*.tar.gz`
91− - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&
92− (cd dist && cabal install --force-reinstalls "$SRC_TGZ")
108+ # test that source-distributions can be generated
109+ - (cd "." && cabal sdist)
110+ - mv "."/dist/writer-cps-mtl-*.tar.gz ${DISTDIR}/
111+ - cd ${DISTDIR} || false
112+ - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
113+ - "printf 'packages: writer-cps-mtl-*/*.cabal\\n' > cabal.project"
114+ - touch cabal.project.local
115+ - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list --simple-output); do echo $pkg | grep -vw -- writer-cps-mtl | sed 's/^/constraints: /' | sed 's/-[^-]*$/ installed/' >> cabal.project.local; done; fi"
116+ - cat cabal.project || true
117+ - cat cabal.project.local || true
118+ # this builds all libraries and executables (without tests/benchmarks)
119+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
120+
121+ # build & run tests, build benchmarks
122+ - cabal new-build -w ${HC} ${TEST} ${BENCH} all
123+
124+ # cabal check
125+ - (cd writer-cps-mtl-* && cabal check)
126+
127+ # haddock
128+ - rm -rf ./dist-newstyle
129+ - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
130+
131+ # Build without installed constraints for packages in global-db
132+ - if $UNCONSTRAINED; then rm -f cabal.project.local; echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks all; else echo "Not building without installed constraints"; fi
93133
134+# REGENDATA ["writer-cps-mtl.cabal"]
94135# EOF
Control/Monad/RWS/CPS.hsdeleted−49
@@ -1,49 +0,0 @@
1−{-# OPTIONS_GHC -fno-warn-orphans #-}
2−module Control.Monad.RWS.CPS (
3− -- * The RWS monad
4− RWS,
5− rws,
6− runRWS,
7− evalRWS,
8− execRWS,
9− mapRWS,
10− withRWS,
11− -- * The RWST monad transformer
12− RWST,
13− runRWST,
14− evalRWST,
15− execRWST,
16− mapRWST,
17− withRWST,
18− -- * Strict Reader-writer-state monads
19− module X
20−) where
21−
22−import Control.Monad as X
23−import Control.Monad.Fix as X
24−import Control.Monad.RWS.Class as X
25−import Control.Monad.Trans as X
26−import Data.Monoid as X
27−
28−import Control.Monad.Trans.RWS.CPS hiding (censor, tell, writer, listen, pass, ask,
29− local, reader, get, put, state, listens, asks)
30−import qualified Control.Monad.Trans.RWS.CPS as CPS
31−
32−-- Orphan instance
33−instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where
34− tell = CPS.tell
35− writer = CPS.writer
36− listen = CPS.listen
37− pass = CPS.pass
38−
39−-- Orphan instance
40−instance Monad m => MonadReader r (RWST r w s m) where
41− ask = CPS.ask
42− local = CPS.local
43− reader = CPS.reader
44−
45−-- Orphan instance
46−instance Monad m => MonadState s (RWST r w s m) where
47− get = CPS.get
48− put = CPS.put
49− state = CPS.state
Control/Monad/Writer/CPS.hsdeleted−29
@@ -1,29 +0,0 @@
1−{-# OPTIONS_GHC -fno-warn-orphans #-}
2−module Control.Monad.Writer.CPS (
3− -- * The Writer monad
4− Writer,
5− runWriter,
6− execWriter,
7− mapWriter,
8− -- * The WriterT monad transformer
9− WriterT,
10− runWriterT,
11− execWriterT,
12− mapWriterT,
13− module X
14−) where
15−
16−import Control.Monad as X
17−import Control.Monad.Fix as X
18−import Control.Monad.Trans as X
19−import Control.Monad.Writer.Class as X
20−import Data.Monoid as X
21−
22−import Control.Monad.Trans.Writer.CPS hiding (writer, listen, pass)
23−import qualified Control.Monad.Trans.Writer.CPS as CPS
24−
25−-- Orphan instance
26−instance (Monoid w, Monad m) => MonadWriter w (CPS.WriterT w m) where
27− writer = CPS.writer
28− listen = CPS.listen
29− pass = CPS.pass
README.mdnew file+8
@@ -0,0 +1,8 @@
1+# Stricter drop in replacements for WriterT and RWST
2+
3+[![Hackage](https://img.shields.io/hackage/v/writer-cps-mtl.svg)](https://hackage.haskell.org/package/writer-cps-mtl)
4+[![Build Status](https://secure.travis-ci.org/minad/writer-cps-mtl.png?branch=master)](http://travis-ci.org/minad/writer-cps-mtl)
5+
6+* https://hackage.haskell.org/package/writer-cps-transformers
7+* https://hackage.haskell.org/package/writer-cps-mtl
8+* https://hackage.haskell.org/package/writer-cps-monads-tf
package.yamldeleted−43
@@ -1,43 +0,0 @@
1−name: writer-cps-mtl
2−version: 0.1.0.0
3−synopsis: MonadWriter orphan instances for writer-cps-transformers
4−description:
5− The WriterT and RWST monad transformers provided by writer-cps-transformers
6− are written in continuation passing style and avoid the space-leak
7− problem of the traditional Control.Monad.Trans.Writer.Strict/Lazy.
8−category: Control
9−author: Andy Gill, Edward Kmett, Daniel Mendler
10−maintainer: mail@daniel-mendler.de
11−copyright: 2016 Daniel Mendler
12−license: MIT
13−github: minad/writer-cps-mtl
14−
15−default-extensions:
16−- MultiParamTypeClasses
17−- FunctionalDependencies
18−- FlexibleInstances
19−
20−ghc-options:
21−- -Wall
22−- -Widentities
23−- -Wincomplete-uni-patterns
24−- -Wincomplete-record-updates
25−- -Wtabs
26−
27−dependencies:
28−- base < 6
29−- transformers >= 0.4 && < 0.6
30−- mtl >= 2.2 && < 2.4
31−- writer-cps-transformers == 0.1.0.0
32−
33−tested-with:
34− GHC == 7.0.4,
35− GHC == 7.2.2,
36− GHC == 7.4.2,
37− GHC == 7.6.3,
38− GHC == 7.8.4,
39− GHC == 7.10.3,
40− GHC == 8.0.1
41−
42−library:
43− source-dirs: .
src/Control/Monad/RWS/CPS.hsnew file+82
@@ -0,0 +1,82 @@
1+{-# OPTIONS_GHC -fno-warn-orphans #-}
2+{-# LANGUAGE MultiParamTypeClasses #-}
3+{-# LANGUAGE FlexibleInstances #-}
4+{-# LANGUAGE UndecidableInstances #-}
5+-----------------------------------------------------------------------------
6+-- |
7+-- Module : Control.Monad.RWS.CPS
8+-- Copyright : (c) Daniel Mendler 2016,
9+-- (c) Andy Gill 2001,
10+-- (c) Oregon Graduate Institute of Science and Technology, 2001
11+-- License : BSD-style (see the file LICENSE)
12+--
13+-- Maintainer : mail@daniel-mendler.de
14+-- Stability : experimental
15+-- Portability : non-portable (multi-param classes, functional dependencies)
16+--
17+-- Stricter RWS monad using continuation-passing-style for the
18+-- writer output.
19+--
20+-- Inspired by the paper
21+-- /Functional Programming with Overloading and Higher-Order Polymorphism/,
22+-- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/>)
23+-- Advanced School of Functional Programming, 1995.
24+-----------------------------------------------------------------------------
25+
26+module Control.Monad.RWS.CPS (
27+ -- * The RWS monad
28+ RWS,
29+ rws,
30+ runRWS,
31+ evalRWS,
32+ execRWS,
33+ mapRWS,
34+ withRWS,
35+ -- * The RWST monad transformer
36+ RWST,
37+ rwsT,
38+ runRWST,
39+ evalRWST,
40+ execRWST,
41+ mapRWST,
42+ withRWST,
43+ module X
44+) where
45+
46+import Control.Monad as X
47+import Control.Monad.Fix as X
48+import Control.Monad.RWS.Class as X
49+import Control.Monad.Trans as X
50+import Data.Monoid as X
51+
52+import Control.Monad.Cont.Class
53+import Control.Monad.Error.Class
54+import Control.Monad.Trans.RWS.CPS
55+import qualified Control.Monad.Trans.RWS.CPS as CPS
56+
57+-- Orphan instances
58+
59+instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where
60+ writer = CPS.writer
61+ tell = CPS.tell
62+ listen = CPS.listen
63+ pass = CPS.pass
64+
65+instance Monad m => MonadReader r (RWST r w s m) where
66+ ask = CPS.ask
67+ local = CPS.local
68+ reader = CPS.reader
69+
70+instance Monad m => MonadState s (RWST r w s m) where
71+ get = CPS.get
72+ put = CPS.put
73+ state = CPS.state
74+
75+instance (Monad m, Monoid w) => MonadRWS r w s (RWST r w s m)
76+
77+instance MonadError e m => MonadError e (RWST r w s m) where
78+ throwError = lift . throwError
79+ catchError = CPS.liftCatch catchError
80+
81+instance MonadCont m => MonadCont (RWST r w s m) where
82+ callCC = CPS.liftCallCC' callCC
src/Control/Monad/Writer/CPS.hsnew file+77
@@ -0,0 +1,77 @@
1+{-# OPTIONS_GHC -fno-warn-orphans #-}
2+{-# LANGUAGE MultiParamTypeClasses #-}
3+{-# LANGUAGE FlexibleInstances #-}
4+{-# LANGUAGE UndecidableInstances #-}
5+-----------------------------------------------------------------------------
6+-- |
7+-- Module : Control.Monad.Writer.CPS
8+-- Copyright : (c) Daniel Mendler 2016,
9+-- (c) Andy Gill 2001,
10+-- (c) Oregon Graduate Institute of Science and Technology, 2001
11+-- License : BSD-style (see the file LICENSE)
12+--
13+-- Maintainer : mail@daniel-mendler.de
14+-- Stability : experimental
15+-- Portability : non-portable (multi-param classes, functional dependencies)
16+--
17+-- Stricter writer monad using continuation-passing-style for the
18+-- writer output.
19+--
20+-- Inspired by the paper
21+-- /Functional Programming with Overloading and Higher-Order Polymorphism/,
22+-- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>)
23+-- Advanced School of Functional Programming, 1995.
24+-----------------------------------------------------------------------------
25+
26+module Control.Monad.Writer.CPS (
27+ -- * The Writer monad
28+ Writer,
29+ runWriter,
30+ execWriter,
31+ mapWriter,
32+ -- * The WriterT monad transformer
33+ WriterT,
34+ writerT,
35+ runWriterT,
36+ execWriterT,
37+ mapWriterT,
38+ module X
39+) where
40+
41+import Control.Monad as X
42+import Control.Monad.Fix as X
43+import Control.Monad.Trans as X
44+import Control.Monad.Writer.Class as X
45+import Data.Monoid as X
46+
47+import Control.Monad.State.Class
48+import Control.Monad.Reader.Class
49+import Control.Monad.Cont.Class
50+import Control.Monad.Error.Class
51+import Control.Monad.Trans.Writer.CPS
52+import qualified Control.Monad.Trans.Writer.CPS as CPS
53+
54+-- Orphan instances
55+
56+instance (Monad m, Monoid w) => MonadWriter w (WriterT w m) where
57+ writer = CPS.writer
58+ tell = CPS.tell
59+ listen = CPS.listen
60+ pass = CPS.pass
61+
62+instance MonadError e m => MonadError e (WriterT w m) where
63+ throwError = lift . throwError
64+ catchError = CPS.liftCatch catchError
65+
66+instance MonadCont m => MonadCont (WriterT w m) where
67+ callCC = CPS.liftCallCC callCC
68+
69+instance (MonadReader r m, Monoid w) => MonadReader r (WriterT w m) where
70+ ask = lift ask
71+ local = CPS.mapWriterT . local
72+ reader = lift . reader
73+
74+instance MonadState s m => MonadState s (WriterT w m) where
75+ get = lift get
76+ put = lift . put
77+ state = lift . state
writer-cps-mtl.cabal+21−14
@@ -1,21 +1,25 @@
1−-- This file has been generated from package.yaml by hpack version 0.14.1.
1+cabal-version: 2.2
2+
3+-- This file has been generated from package.yaml by hpack version 0.31.1.
24--
35-- see: https://github.com/sol/hpack
6+--
7+-- hash: 522a344e5b14c30ac172bd9ebb6ea7c7e3f1d5ebcd889f7326611c19eaf9c565
48
59name: writer-cps-mtl
6−version: 0.1.0.0
7−cabal-version: >= 1.10
8−license: MIT
10+version: 0.1.1.6
11+-- license: BSD3
12+-- ^ unfortunately had to comment this line because of cabal2nix
913license-file: LICENSE
10−tested-with: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
11−author: Daniel Mendler
14+tested-with: GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.1, GHC == 8.4.3, GHC == 8.6.1
15+author: Andy Gill, Edward Kmett, Daniel Mendler
1216maintainer: mail@daniel-mendler.de
1317copyright: 2016 Daniel Mendler
1418category: Control
1519synopsis: MonadWriter orphan instances for writer-cps-transformers
1620homepage: https://github.com/minad/writer-cps-mtl#readme
1721bug-reports: https://github.com/minad/writer-cps-mtl/issues
18−description: The WriterT and RWST monad transformers provided by writer-cps-transformers are written in continuation passing style and avoid the space-leak problem of the traditional Control.Monad.Trans.Writer.Strict/Lazy.
22+description: The WriterT and RWST monad transformers provided by writer-cps-transformers are written in continuation passing style and avoid the space-leak problem of the traditional Control.Monad.Trans.Writer.Strict and Control.Monad.Trans.Writer.Lazy. See also (<http://hackage.haskell.org/package/writer-cps-transformers>).
1923build-type: Simple
2024
2125source-repository head
@@ -24,15 +28,18 @@ source-repository head
2428
2529library
2630 hs-source-dirs:
27− .
28− default-extensions: MultiParamTypeClasses FunctionalDependencies FlexibleInstances
29− ghc-options: -Wall -Widentities -Wincomplete-uni-patterns -Wincomplete-record-updates -Wtabs
31+ src
32+ ghc-options: -Wall
3033 build-depends:
31− base < 6
32− , transformers >= 0.4 && < 0.6
33− , mtl >= 2.2 && < 2.4
34− , writer-cps-transformers == 0.1.0.0
34+ base <6
35+ , mtl >=2.2 && <2.4
36+ , transformers >=0.4 && <0.6
37+ , writer-cps-transformers == 0.1.1.4
38+ mixins: transformers hiding
39+ (Control.Monad.Trans.RWS.CPS, Control.Monad.Trans.Writer.CPS)
3540 exposed-modules:
3641 Control.Monad.RWS.CPS
3742 Control.Monad.Writer.CPS
43+ other-modules:
44+ Paths_writer_cps_mtl
3845 default-language: Haskell2010