Hi,<div>With my &quot;edsl&quot;, one can describe a tree like this -</div><div><br></div><div>import TreeEdsl</div><div>import Data.Tree</div><div><br></div><div>createTree :: TreeContext String ()</div><div>createTree = do</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>insertSubTree &quot;Fruits&quot; $ do</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>insertLeaf &quot;Apple&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>insertLeaf &quot;Mango&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>insertSubTree &quot;Arbitrary&quot; $ do</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>insertSubTree &quot;Numbers&quot; $ do</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;1&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;2&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;3&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>insertSubTree &quot;Letters&quot; $ do</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;A&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;B&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>insertLeaf &quot;C&quot;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return ()</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div>
<div>main = do</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>tree &lt;- process &quot;root&quot; createTree</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>putStrLn (drawTree (fmap show tree))</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>return ()</div><div><br></div><div><br></div><div>and get a tree like this - </div><div><meta charset="utf-8"><div><br></div><div>&quot;root&quot;</div><div>
|</div><div>+- &quot;Arbitrary&quot;</div><div>|  |</div><div>|  +- &quot;Letters&quot;</div><div>|  |  |</div><div>|  |  +- &quot;C&quot;</div><div>|  |  |</div><div>|  |  +- &quot;B&quot;</div><div>|  |  |</div><div>|  |  `- &quot;A&quot;</div>
<div>|  |</div><div>|  `- &quot;Numbers&quot;</div><div>|     |</div><div>|     +- &quot;3&quot;</div><div>|     |</div><div>|     +- &quot;2&quot;</div><div>|     |</div><div>|     `- &quot;1&quot;</div><div>|</div><div>
`- &quot;Fruits&quot;</div><div>   |</div><div>   +- &quot;Mango&quot;</div><div>   |</div><div>   `- &quot;Apple&quot;</div></div><div><br></div><div> </div><div><div>My code is here </div><div><a href="https://github.com/ckkashyap/LearningPrograms/blob/master/Haskell/edsl/TreeEdsl.hs">https://github.com/ckkashyap/LearningPrograms/blob/master/Haskell/edsl/TreeEdsl.hs</a></div>
</div><div><br></div><div>I&#39;d appreciate your feedback on this. Does this qualify to be a edsl?</div><div><br></div><div>Regards,</div><div>Kashyap</div>