
Am Mittwoch, den 16.11.2011, 10:46 +0100 schrieb Bas van Dijk:
Is ⊥ the right symbol to express the non-strict evaluation of the language? Is it true that non-strict evaluation requires that ⊥ inhabits every type?
In typical strict languages, ⊥ also inhabits every type. The difference is that the domains of all types except function types are flat. That is, they don’t contain any partially defined values like ⊥ : ⊥, but only ⊥ and completely defined values. Where a Haskell expression would result in a partially defined value, the same expression in a corresponding strict language would result in ⊥. So strict languages are “more ⊥” than Haskell. Thus I cannot see why ⊥ should be used as a symbol for non-strictness at all. Best wishes, Wolfgang