Well, TreeLoc comes from Data.Tree.Zipper which comes from rosezipper packge. Thank you and MightyByte. Its much improved now.
Jian Yitzchak Gale <g...@sefer.org> wrote: > Jian Fan wrote: >> I somehow cannot figure this out. Tree is Foldable so I >> can use "find" on it. But how can I use find on TreeLoc? >> Am I missing something obvious? > > But what exactly is a "TreeLoc"? Hoogle doesn't know about > it. If you created it yourself, you haven't showed us > how you defined it or what you are using it for. > > In any case, below is one way to simplify the code you posted. > It is only a small simplification, but it is about the best I > can do without seeing the details of what you are trying to do. > > Try posting this kind of question to the "haskell-beginners" > mailing list. There are people there who are much better at > answering this kind of question. > > One thing that made it hard to follow your code was your > repeated use of "loc", one shadowing the other. Try to avoid > that. > > searchTree :: (a -> Bool) -> TreeLoc a -> Maybe (TreeLoc a) > searchTree pre rootLoc > | pred (getLabel rootLoc) = Just rootLoc > | otherwise = do > loc <- firstChild rootLoc > searchTree pred loc `mplus` (right loc >>= searchTree pred) > > Regards, > Yitz _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe