Wonder if it is worthwhile to add length info to nodes to make `length` function constant? Maybe it's already that way? Let's do that later though, unclear if that's the tradeoff we'd want.