> > * Every definition of tp
I meant "of type", forgetting that my emacs abbrevs don't expand in gmail. On Thu, May 22, 2008 at 2:13 PM, Conal Elliott <[EMAIL PROTECTED]> wrote: > Hi Krasimir, > > I had a long exchange with chessguy about this interface, suggesting a > significant change in style, simplifying the type. (Incidentally, the > change removed the State and hence mtl dependence.) > > The conversation is on > http://tunes.org/~nef/logs/haskell/08.05.17<http://tunes.org/%7Enef/logs/haskell/08.05.17>, > starting with "12:08:11 <chessguy> w00t!" and really picking up with > "<conal> chessguy: something smells funny ...". > > Here's a summary of the conversation, though I encourage you to read the > whole thing: > > * Every definition of tp 'State (TreeLoc a) a', does a getLabel at the end > (except getLabel). > * Often users of those movement functions discard the result. > * Simpler and more orthogonal would be remove the getLabel and return > 'State (TreeLoc a) ()' instead. > * Now remove that return value altogether, simplifying the type of zipper > movements to just 'TreeLoc a -> TreeLoc a'. Then they compose nicely with > (.), having id as identity. > * Simplify the type of getLabel to just 'TreeLoc a -> a'. Now no more > State. > > Cheers, - Conal > > > > On Thu, May 22, 2008 at 12:52 PM, Krasimir Angelov <[EMAIL PROTECTED]> > wrote: > >> Hello Guys, >> >> We have Data.Tree in the standard libraries for a long time but for >> some reason we still don't have standard implementation for Zipper. I >> wrote recently one implementation for Yi but there are many other >> versions hanging around. At least I know for some. I propose to add >> one in the standard libraries i.e. the "containers" package. The >> version that I use currently is here: >> >> http://code.haskell.org/yi/Data/Tree/Zipper.hs >> >> If you would like to do code review I will be happy to hear comments. >> After the API is settled down I will write test cases also. One thing >> that is worying me is that the current version uses State monad which >> is in the "mtl" package while the natural place for Data.Tree.Zipper >> is in "containers". This will create an extra dependency. Is this >> acceptable? >> >> Regards, >> Krasimir >> _______________________________________________ >> Haskell-Cafe mailing list >> [email protected] >> http://www.haskell.org/mailman/listinfo/haskell-cafe >> > >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
