Hi > > 1) You depend on MTL, but I can't obviously see why. Perhaps the test > > suite? > > The current implementation of (!) relies on the Monad instance for > Either exported by Control.Monad.Error. There's no fundamental reason > for this; it was just easier to code. Perhaps I'll get rid of it in a > later version, but I haven't bothered yet because I don't think an MTL > dependency is a big deal.
Yes, an MTL dependency is nothing to worry about at all, and isn't worth even thinking about removing given its actually used. > Heck, let me prove it to you -- here's what happens if I define > (insert = unsafeInsert): Ah, I see now. You are of course correct. > > 3) > > insert x y = delete x > > >>> deleteR y > > >>> unsafeInsert x y > > > > Why not: > > > > insert x y = unsafeInsert x y . delete x . delete y > > > > Now you don't end up using the arrow combinators, and it becomes more > > readable (at least to me). Of course, this function may disappear > > entirely if what I wrote in (2) is correct. > > This is a matter of taste, I guess. In this case I felt that the > "backwards" order of (.) was a little misleading, and I'm personally > quite comfortable with using (>>>) for forward composition. Fair enough. You've obviously thought about the issues in this package a great deal, which gives me a nice happy feeling when using the package! Thanks Neil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe