haskell-cafe@haskell.org
[Top] [All Lists]

Re: [Haskell-cafe] Data.Tree.Zipper in the standard libraries

Subject: Re: [Haskell-cafe] Data.Tree.Zipper in the standard libraries
From: "Krasimir Angelov"
Date: Fri, 23 May 2008 10:48:01 +0200
The monads design is used in Data.Map i.e.

lookup :: (Monad m, Ord k) => k -> Map k a -> m a

and I think that this will be more consistent.


On 5/23/08, Ross Paterson <ross@xxxxxxxxxxxxxx> wrote:
> On Fri, May 23, 2008 at 09:03:29AM +0200, Krasimir Angelov wrote:
> > Alternatively I can use monad with failure. In other words, there are
> > two possibilities:
> >
> > 1. Use error ".." and types like:   TreeLoc a -> TreeLoc a
> > 2. Use monad and type like:       Monad m => TreeLoc a -> m (TreeLoc a)
>
> I'd suggest that TreeLoc a -> Maybe (TreeLoc a) is better than the
> second version.  The problem with using Monad(fail) is that it hides
> possible runtime errors among testable conditions.  With 1. you can
> at least search the code for occurrences of the dangerous function.
> With the Monad version you need to consider the type of each use to know
> whether it is dangerous.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@xxxxxxxxxxx
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@xxxxxxxxxxx
http://www.haskell.org/mailman/listinfo/haskell-cafe

<Prev in Thread] Current Thread [Next in Thread>