Changes between Version 1 and Version 2 of Proposals/transformers
- Timestamp:
- 11/18/09 17:33:35 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Proposals/transformers
v1 v2 1 1 [[PageOutline]] 2 2 3 = Refactoring the mtl package=4 The proposal is to add the [http://hackage.haskell.org/package/transformers transformers] and [http://hackage.haskell.org/package/monads-fd monads-fd] packages, and make the next version of the [http://hackage.haskell.org/package/mtl mtl] package a compatibility layer over them. A draft of this compatibility layer is available at http://urchin.earth.li/darcs/ganesh/mtl-compat . This represents a restructuring of the mtl package.3 = Add transformers and monads-tf, and base the mtl package on them = 4 The proposal is to restructure the [http://hackage.haskell.org/package/mtl mtl] package as a compatibility layer over new [http://hackage.haskell.org/package/transformers transformers] and [http://hackage.haskell.org/package/monads-fd monads-fd] packages. A draft of this compatibility layer is available at [http://urchin.earth.li/darcs/ganesh/mtl-compat]. 5 5 6 6 == Credits == … … 23 23 * Functor instances for monad transformers no longer require Monad where Functor is sufficient. 24 24 * instances of {{{Applicative}}} and {{{Alternative}}} have been added as appropriate. 25 The package can be used on its own , or with packages adding type classes. There are examples of standalone use in the [http://hackage.haskell.org/packages/archive/transformers/0.1.4.0/doc/html/Control-Monad-Trans.html Control.Monad.Trans documentation].25 The package can be used on its own (see the [http://hackage.haskell.org/packages/archive/transformers/0.1.4.0/doc/html/Control-Monad-Trans.html Control.Monad.Trans documentation] for examples), or with packages adding type classes. 26 26 27 27 * [http://hackage.haskell.org/package/monads-fd monads-fd] depends on transformers and adds type classes using functional dependencies. Usage is the same as the current mtl package, except for module names. … … 47 47 Different dependencies, extra instances: 48 48 49 * [http://hackage.haskell.org/package/ monad-param/blogination blogination]: Functor instances depending on Functor, instance collision Applicative/Alternative ErrorT49 * [http://hackage.haskell.org/package/blogination blogination]: Functor instances depending on Functor, instance collision Applicative/Alternative ErrorT 50 50 * [http://hackage.haskell.org/package/category-extras category-extras]: Functor instances depending on Functor 51 * [http://hackage.haskell.org/package/ monad-param/cgi cgi]: Functor instances depending on Functor52 * [http://hackage.haskell.org/package/ monad-param/encoding encoding]: instance collision: Monad Either53 * [http://hackage.haskell.org/package/ monad-param/logict logict]: instance collision: Applicative Identity (will be superfluous: same as instance in transformers)51 * [http://hackage.haskell.org/package/cgi cgi]: Functor instances depending on Functor 52 * [http://hackage.haskell.org/package/encoding encoding]: instance collision: Monad Either 53 * [http://hackage.haskell.org/package/logict logict]: instance collision: Applicative Identity (will be superfluous: same as instance in transformers) 54 54 * [http://hackage.haskell.org/package/monad-param monad-param]: Functor instances depending on Functor 55 * [http://hackage.haskell.org/package/m onad-param/mueval mueval]: Functor instances depending on Functor55 * [http://hackage.haskell.org/package/mueval mueval]: Functor instances depending on Functor 56 56 * [http://hackage.haskell.org/package/xcb-types xcb-types]: instance collision: Applicative/Alternative ReaderT (will be superfluous: same as instance in transformers; version 0.5.1.1 has mtl < 1.2) 57 57 * [http://hackage.haskell.org/package/xmonad-contrib xmonad-contrib]: instance collision: Error [a]: … … 59 59 Data constructors for basic monad classes: 60 60 61 * [http://hackage.haskell.org/package/ monad-param/FileManip FileManip]: Missing data constructor: State61 * [http://hackage.haskell.org/package/FileManip FileManip]: Missing data constructor: State 62 62 * [http://hackage.haskell.org/package/HAppS-Server HAppS-Server]: Missing data constructor: Reader 63 * [http://hackage.haskell.org/package/ monad-param/HaLeX HaLeX]: Missing data constructor: State64 * [http://hackage.haskell.org/package/ monad-param/LambdaHack LambdaHack]: Missing data constructor: State (version 0.1.20090606 has mtl < 2)65 * [http://hackage.haskell.org/package/ monad-param/lambdabot lambdabot]: Missing data constructor: State63 * [http://hackage.haskell.org/package/HaLeX HaLeX]: Missing data constructor: State 64 * [http://hackage.haskell.org/package/LambdaHack LambdaHack]: Missing data constructor: State (version 0.1.20090606 has mtl < 2) 65 * [http://hackage.haskell.org/package/lambdabot lambdabot]: Missing data constructor: State 66 66 * [http://hackage.haskell.org/package/open-witness open-witness]: Missing data constructor: State 67 67 … … 69 69 70 70 * [http://hackage.haskell.org/package/applicative-extras applicative-extras]: instance Applicative (State a) (will be superfluous: same as instance in transformers) 71 * [http://hackage.haskell.org/package/ monad-param/derive derive]: instance Applicative (Writer a) (will be superfluous: same as instance in transformers)71 * [http://hackage.haskell.org/package/derive derive]: instance Applicative (Writer a) (will be superfluous: same as instance in transformers) 72 72 * [http://hackage.haskell.org/package/random-fu random-fu]: instance MonadRandom (State StdGen) (will be superfluous: same instance as declared for StateT) 73 * [http://hackage.haskell.org/package/ monad-param/yhccore yhccore]: instance UniqueIdM (State a) (could be trivially generalized to StateT)73 * [http://hackage.haskell.org/package/yhccore yhccore]: instance UniqueIdM (State a) (could be trivially generalized to StateT)
