module Main where -- Definiere eine einfache Datenstruktur für DOM-Elemente data DOM a = Element a [DOM a] | EmptyElement deriving (Show, Eq) -- Schreibe die Unit funktion, welche einen Wert in einen DOM-Container verschachtelt! unit :: a -> DOM a -- Schreibe die Bind Funktion, welches es einem Erlaubt funktionen des Monadischen Typen DOM zu verketten bind :: DOM a -> (a -> DOM b) -> DOM b -- Schreibe eine Lift Funktion, welche eine Funtion nimmt und diesselbe funktion mit den Monadischen Werten DOM als Eigabe und Ausgabetyp besitzt lift :: (a -> b) -> DOM a -> DOM b -- Hauptfunktion zum Ausführen von Tests main :: IO () main = do print $ unit "root" -- Element "root" []