module FPPrac.Trees.RoseTree ( RoseTree(..) , showTree , showTreeList , exampleTree ) where import EventLoop.Output.Single (outSingle) import EventLoop.Output import EventLoop.CommonTypes import FPPrac.Trees.GeneralTree data RoseTree = RoseNode String [RoseTree] deriving (Show, Eq) ------------------------ instance GeneralizeTree RoseTree where generalizeTree (RoseNode str children) = GeneralTreeBox content children'WithLines where content = [GeneralNode (0,0,0) 10, GeneralNodeText (0,0,0) str] children'WithLines = zip (repeat line) (map generalizeTree children) line = GeneralLine (0,0,0) exampleTree = RoseNode "z" [ RoseNode "aaa" [ RoseNode "bbb" [ RoseNode "ccc" [], RoseNode "ddd" [] ], RoseNode "" [RoseNode "fff" [], RoseNode "ggg" [], RoseNode "hhh" [] ], RoseNode "iii" [RoseNode "" [] ] ], RoseNode "kkk" [RoseNode "lll" [], RoseNode "mmm" [RoseNode "nnn" [RoseNode "q" [], RoseNode "r" [] ], RoseNode "ooo" [], RoseNode "ppp" [] ] ] ]