module Data.Tree.Generators where import Data.Tree import Test.QuickCheck import Control.Monad tree :: Gen a -> Gen (Tree a) tree g = sized h where h s = liftM2 Node g cs where cs | s <= 0 = return [] | otherwise = resize (s `div` 8) (listOf (tree g))