Changes between Version 1 and Version 2 of Proposals/transformers

Show
Ignore:
Timestamp:
11/18/09 17:33:35 (4 years ago)
Author:
ross (IP: 138.40.95.95)
Comment:

retitle, fix links

Legend:

Unmodified
Added
Removed
Modified
  • Proposals/transformers

    v1 v2  
    11[[PageOutline]] 
    22 
    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 = 
     4The 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]. 
    55 
    66== Credits == 
     
    2323    * Functor instances for monad transformers no longer require Monad where Functor is sufficient. 
    2424    * 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. 
    2626 
    2727 * [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. 
     
    4747Different dependencies, extra instances: 
    4848 
    49  * [http://hackage.haskell.org/package/monad-param/blogination blogination]: Functor instances depending on Functor, instance collision Applicative/Alternative ErrorT 
     49 * [http://hackage.haskell.org/package/blogination blogination]: Functor instances depending on Functor, instance collision Applicative/Alternative ErrorT 
    5050 * [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 Functor 
    52  * [http://hackage.haskell.org/package/monad-param/encoding encoding]: instance collision: Monad Either 
    53  * [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) 
    5454 * [http://hackage.haskell.org/package/monad-param monad-param]: Functor instances depending on Functor 
    55  * [http://hackage.haskell.org/package/monad-param/mueval mueval]: Functor instances depending on Functor 
     55 * [http://hackage.haskell.org/package/mueval mueval]: Functor instances depending on Functor 
    5656 * [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) 
    5757 * [http://hackage.haskell.org/package/xmonad-contrib xmonad-contrib]: instance collision: Error [a]: 
     
    5959Data constructors for basic monad classes: 
    6060 
    61  * [http://hackage.haskell.org/package/monad-param/FileManip FileManip]: Missing data constructor: State 
     61 * [http://hackage.haskell.org/package/FileManip FileManip]: Missing data constructor: State 
    6262 * [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: State  
    64  * [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: State 
     63 * [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 
    6666 * [http://hackage.haskell.org/package/open-witness open-witness]: Missing data constructor: State 
    6767 
     
    6969 
    7070 * [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) 
    7272 * [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)