I have been given a piece of code that uses Tie-ing the Knot concept to label a tree of nodes in breath first manner.  It seems to work fine, but  I am having trouble expanding the code on my own to see the evaluation  process.   I like to know if there is a tools to use to see the reduction steps. 




data Tree = Leaf | Node Tree Int Tree deriving Show
 
label (Node ln _ rn) ((h:r):rest) = (Node lr h rr, r:r2) where
                                        (lr, r1) = label ln rest
                                        (rr, r2) = label rn r1
label _ _  = (Leaf, [])
lt t = let (r, unused) = label t ([1..]:unused)
       in r




--
Daryoush

Weblog:  http://onfp.blogspot.com/