-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Render trees as foldable HTML and Unicode art
--   
--   Render trees as foldable HTML and Unicode art
--   
--   Example:
--   
--   <pre>
--   *Data.Tree.View&gt; drawTree $ Node "Add" [Node "Sub" [Node "3" [], Node "Mul" [Node "1" [], Node "2" []]], Node "4" []]
--   Add
--    ├╴Sub
--    │  ├╴3
--    │  └╴Mul
--    │     ├╴1
--    │     └╴2
--    └╴4
--   </pre>
@package tree-view
@version 0.5

module Data.Tree.View

-- | Show a <a>Tree</a> using Unicode art
showTree :: Tree String -> String

-- | Draw a <a>Tree</a> on the terminal using Unicode art
--   
--   Example:
--   
--   <pre>
--   *Data.Tree.View&gt; drawTree $ Node "Add" [Node "Sub" [Node "3" [], Node "Mul" [Node "1" [], Node "2" []]], Node "4" []]
--   Add
--    ├╴Sub
--    │  ├╴3
--    │  └╴Mul
--    │     ├╴1
--    │     └╴2
--    └╴4
--   </pre>
drawTree :: Tree String -> IO ()
data Behavior

-- | Non-collapsible
Fixed :: Behavior
InitiallyCollapsed :: Behavior
InitiallyExpanded :: Behavior

-- | A tree node
data NodeInfo
NodeInfo :: Behavior -> String -> String -> NodeInfo
[nodeBehavior] :: NodeInfo -> Behavior

-- | Node name (to be displayed in the HTML tree view)
[nodeName] :: NodeInfo -> String

-- | Additional information (to be displayed when hovering the mouse over
--   the node). This field may contain line breaks.
[nodeInfo] :: NodeInfo -> String

-- | Convert a <a>Tree</a> to HTML with foldable nodes
htmlTree :: Maybe FilePath -> Tree NodeInfo -> String

-- | Convert a <a>Tree</a> to an HTML file with foldable nodes
writeHtmlTree :: Maybe FilePath -> FilePath -> Tree NodeInfo -> IO ()
