On Sat, 24 Jan 2009, Thomas Davie wrote:
I'm not sure why you're saying that this semantics does not capture
non-termination – the only change is that computations resulting in the unit
type *can't* non terminate, because we can always optimize them down to ().
Of course, if you want to be able to deal with non-termination, one could use
the Maybe () type!
I find the current semantics better: All types are handled the same way by
default and whenever you want to "optimize" (undefined::()) to () you can
use
optimizeNull :: () -> ()
optimizeNull _ = ()
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe