Is it possible to do a search on a graph constructed with the tying-the-knot strategy?
The tying-the-knot strategy can be used to construct graphs such as, using a simple two-edged graph as an example: data Node = Node Node Node -- a - b -- | | -- c - d square = a where a = Node b c b = Node a d c = Node a d d = Node b c That strategy is rather elegant, but I couldn't find a way to actually use it without Int labels. For example, how could I write a function that counts the amount of nodes on the square value? countNodes :: Node -> Int countNodes = ... ??? ... main = print $ countNodes square -- output: 4 You do indeed need some kind of labeling, because from inside Haskell