-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Create random trees -- -- Create random trees @package random-tree @version 0.6.0.5 -- | Collects all functions pertaining to the labeling of a tree module Math.RandomTree.Label -- | Modify the label of a tree modifyLabel :: (Eq a) => a -> a -> a -> a -- | Get the neighbors of a label in a fast, theoretically efficient way getNeighbors :: (Ord a) => Int -> a -> Tree (SuperNode a) -> [a] -- | Assign clumps to the label list. Takes an old label and reassigns it -- to the new label in the labelmap, but looks at all neighbors defined -- by the distanceMap and the neighborDistance. If the reassigned nodes -- have already been reassigned (in the propertyList), then ignore. clumpIt :: (Ord a, Eq b) => Int -> Tree (SuperNode a) -> a -> b -> MaybePropertyMap a b -> MaybePropertyMap a b -- | Assign random labels to the leaves of a tree in a clumped fashion assignRandomClumpedProperties :: (Ord a, Eq b) => [b] -> Int -> Tree (SuperNode a) -> StdGen -> MaybePropertyMap a b -> MaybePropertyMap a b -- | Assign random labels to the leaves of a tree assignRandomProperties :: (Ord a) => [b] -> StdGen -> MaybePropertyMap a b -> MaybePropertyMap a b -- | Return the empty propertyMap emptyPropertyMap :: (Ord a) => [a] -> MaybePropertyMap a b -- | Return the propertyMap getPropertyMap :: (Ord a) => [a] -> PropertyMap a a -- | Collects all types used in the program module Math.RandomTree.Types data TreeState a TreeState :: Int -> TreeState a [size] :: TreeState a -> Int data TreeConfig TreeConfig :: Int -> Int -> Int -> Int -> TreeConfig [maxSize] :: TreeConfig -> Int [minSize] :: TreeConfig -> Int [minChildren] :: TreeConfig -> Int [maxChildren] :: TreeConfig -> Int newtype ReaderStateRandom a ReaderStateRandom :: ReaderT TreeConfig (StateT (TreeState Int) (MaybeT (Rand StdGen))) a -> ReaderStateRandom a [runReaderStateRandom] :: ReaderStateRandom a -> ReaderT TreeConfig (StateT (TreeState Int) (MaybeT (Rand StdGen))) a instance Control.Monad.Reader.Class.MonadReader Math.RandomTree.Types.TreeConfig Math.RandomTree.Types.ReaderStateRandom instance Control.Monad.State.Class.MonadState (Math.RandomTree.Types.TreeState GHC.Types.Int) Math.RandomTree.Types.ReaderStateRandom instance Control.Monad.Random.Class.MonadRandom Math.RandomTree.Types.ReaderStateRandom instance GHC.Base.MonadPlus Math.RandomTree.Types.ReaderStateRandom instance GHC.Base.Monad Math.RandomTree.Types.ReaderStateRandom instance GHC.Base.Applicative Math.RandomTree.Types.ReaderStateRandom instance GHC.Base.Functor Math.RandomTree.Types.ReaderStateRandom instance GHC.Base.Alternative Math.RandomTree.Types.ReaderStateRandom -- | Collects all functions pertaining to the creation of a random tree module Math.RandomTree.Algorithms -- | Run the monad transformer for the generation of a random tree. The -- minChildren value, if chosen, results in a leaf runTree :: ReaderStateRandom a -> Int -> Int -> Int -> Int -> StdGen -> Maybe a -- | The recursion for each step of the tree treeRecursion :: ReaderStateRandom (Tree Int) -- | The check for the lower bound: if not fulfilled, returns Nothing checkLowerBound :: ReaderStateRandom (Tree Int) -- | Recursion which continues to make trees until the bounds are met getTree :: ReaderStateRandom (Tree Int) -- | Return String trees makeTree :: [String] -> Int -> Int -> Int -> Int -> Int -> Bool -> IO (PropertySuperTree String String)