Wednesday, April 27, 2011

wumpus-tree

Copperbox revision 2356.

First round of rework on Tree. Tree now generates a LocGraphic rather than TraceDrawing - as most drawing objects in Wumpus are LocGraphics this means that Trees are now more composable. I've also generalized the node type to be anything that supports anchors - though trees will need nodes to be homogeneous. Scaling context has also been removed, it is folded into the new data type TreeProps.

The TreeBuild monad is probably the next for the chop. Now that nodes can be arbitrary LocImages, tree designs no longer need to support annotation through the the TreeBuild monad - LocImages can be annotated instead.

I still want to support some post-building decoration (e.g. adding links that aren't parent-child) but I might have to do this with a dictionary of String keys. Tree building has scoping which doesn't work well with monadic bind, so the current attempt to copy Andy Gill's Dot library technique for Wumpus-Tree doesn't work so well. A map of String key to Anchor might not be safe (miss-spelt keys will cause bad output rather than compile time errors), but at least the anchors can be referenced outside a special-case run function.

Blog Archive

About Me

My photo
Disambiguating biog as there are a few Stephen Tetley's in the world. I'm neither a cage fighter or yachtsman. I studied Fine Art in the nineties (foundation Bradford 1992, degree Cheltenham 1992 - 95) then Computing part-time at Leeds Met graduating in 2003. I'm the Stephen Tetley on Haskell Cafe and Stackoverflow.