The reason that the library will give this output in terms of a different type is that PathNode s encode more information than just the Node (e.g. call contexts) in order to (among other things) match ...