That is interesting. I guess the mistake I made here is that Haskell (intuitively) does not admit the equation `⊥ = Succ ⊥ `, thus ⊥ is not a solution at all.
I imagine, this is not true in strict languages? In some sense, strict language from a dcppo with one more equation `⊥ = Succ ⊥ ` than lazy language, thus their least solution are often different?