data Node a = Node a [Node a]
というだけの構造でも循環は検知できるんでしょうか?

x = Node 0 [Node 1 [x]]
y = Node 0 [Node 1 [y]]

に対して
x == y
が停止してTrueを返す(==)って定義できるんでしょうか