X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FTree.hs;fp=Data%2FTree.hs;h=d04fe3d92ca259471553cb2bc80e9b81f51bb8e3;hb=88f0491c26432f4decf7cad2b3ad29dba1d5f5a6;hp=60c2548521acd5c99862f5b87dcc7d778833df79;hpb=8783c352ef4cb9d19095e5429b960ab5254ae085;p=haskell-directory.git diff --git a/Data/Tree.hs b/Data/Tree.hs index 60c2548..d04fe3d 100644 --- a/Data/Tree.hs +++ b/Data/Tree.hs @@ -20,7 +20,9 @@ module Data.Tree( flatten, levels, -- * Building trees unfoldTree, unfoldForest, +#ifndef __NHC__ unfoldTreeM, unfoldForestM, +#endif unfoldTreeM_BF, unfoldForestM_BF, ) where @@ -89,6 +91,7 @@ unfoldTree f b = let (a, bs) = f b in Node a (unfoldForest f bs) unfoldForest :: (b -> (a, [b])) -> [b] -> Forest a unfoldForest f = map (unfoldTree f) +#ifndef __NHC__ -- | Monadic tree builder, in depth-first order unfoldTreeM :: Monad m => (b -> m (a, [b])) -> b -> m (Tree a) unfoldTreeM f b = do @@ -99,6 +102,7 @@ unfoldTreeM f b = do -- | Monadic forest builder, in depth-first order unfoldForestM :: Monad m => (b -> m (a, [b])) -> [b] -> m (Forest a) unfoldForestM f = mapM (unfoldTreeM f) +#endif -- | Monadic tree builder, in breadth-first order, -- using an algorithm adapted from