--
import Graph import Basic ex1 = mkGraph [(1,"a"),(2,"b"),(3,"c")] [(1,2,"right"),(2,1,"left"), (2,3,"down"),(3,1,"up")] (Just(ps,n,lab,ss),ex2) = match 2 ex1 (Just(ps2,n2,lab2,ss2),ex3) = match 3 ex2 ex4 = (ps2,n2,lab2,ss2) & ex3 ex5 = nmap (ord . head) ex1 ex6 = emap length ex1 mymap f g = let ns = nodes g (Just(ps,n,lab,ss),g2) = match (head ns) g in (ps,n,f lab,ss) & (mymap f g2) data Tree a = Branch a [Tree a] deriving Show df :: Node -> Graph b a -> (Tree b,Graph b a) df root g = let (Just(_,v,lab,ss), g') = match root g (r,g1) = dff ss g' in (Branch lab r,g1) dff :: [(c,Node)] -> Graph b c -> ([Tree b],Graph b c) dff [] g = ([],g) dff ((lab,v):l) g = let (x,g1) = df v g (y,g2) = dff l g1 in (x:y,g2) ex7 = fst (df 2 ex1) --