Hi,
With my "edsl", one can describe a tree like this -
import TreeEdsl
import Data.Tree
createTree :: TreeContext String ()
createTree = do
insertSubTree "Fruits" $ do
insertLeaf "Apple"
insertLeaf "Mango"
insertSubTree "Arbitrary" $ do
insertSubTree "Numbers" $ do
insertLeaf "1"
insertLeaf "2"
insertLeaf "3"
insertSubTree "Letters" $ do
insertLeaf "A"
insertLeaf "B"
insertLeaf "C"
return ()
main = do
tree <- process "root" createTree
putStrLn (drawTree (fmap show tree))
return ()
and get a tree like this -
"root"
|
+- "Arbitrary"
| |
| +- "Letters"
| | |
| | +- "C"
| | |
| | +- "B"
| | |
| | `- "A"
| |
| `- "Numbers"
| |
| +- "3"
| |
| +- "2"
| |
| `- "1"
|
`- "Fruits"
|
+- "Mango"
|
`- "Apple"
I'd appreciate your feedback on this. Does this qualify to be a edsl?
Regards,
Kashyap