Changes between Version 1 and Version 2 of Proposals/transformers
 Timestamp:
 11/18/09 17:33:35 (5 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/monadsfd monadsfd] 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/mtlcompat . This represents a restructuring of the mtl package.3 = Add transformers and monadstf, 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/monadsfd monadsfd] packages. A draft of this compatibility layer is available at [http://urchin.earth.li/darcs/ganesh/mtlcompat]. 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/ControlMonadTrans.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/ControlMonadTrans.html Control.Monad.Trans documentation] for examples), or with packages adding type classes. 26 26 27 27 * [http://hackage.haskell.org/package/monadsfd monadsfd] 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/ monadparam/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/categoryextras categoryextras]: Functor instances depending on Functor 51 * [http://hackage.haskell.org/package/ monadparam/cgi cgi]: Functor instances depending on Functor52 * [http://hackage.haskell.org/package/ monadparam/encoding encoding]: instance collision: Monad Either53 * [http://hackage.haskell.org/package/ monadparam/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/monadparam monadparam]: Functor instances depending on Functor 55 * [http://hackage.haskell.org/package/m onadparam/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/xcbtypes xcbtypes]: 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/xmonadcontrib xmonadcontrib]: instance collision: Error [a]: … … 59 59 Data constructors for basic monad classes: 60 60 61 * [http://hackage.haskell.org/package/ monadparam/FileManip FileManip]: Missing data constructor: State61 * [http://hackage.haskell.org/package/FileManip FileManip]: Missing data constructor: State 62 62 * [http://hackage.haskell.org/package/HAppSServer HAppSServer]: Missing data constructor: Reader 63 * [http://hackage.haskell.org/package/ monadparam/HaLeX HaLeX]: Missing data constructor: State64 * [http://hackage.haskell.org/package/ monadparam/LambdaHack LambdaHack]: Missing data constructor: State (version 0.1.20090606 has mtl < 2)65 * [http://hackage.haskell.org/package/ monadparam/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/openwitness openwitness]: Missing data constructor: State 67 67 … … 69 69 70 70 * [http://hackage.haskell.org/package/applicativeextras applicativeextras]: instance Applicative (State a) (will be superfluous: same as instance in transformers) 71 * [http://hackage.haskell.org/package/ monadparam/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/randomfu randomfu]: instance MonadRandom (State StdGen) (will be superfluous: same instance as declared for StateT) 73 * [http://hackage.haskell.org/package/ monadparam/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)