On Mon 24 Jan, Michael Hobbs wrote:
> (*) One place where the World -> (World, a) model breaks down is when
> the IO function is a blocking function such as "getChar :: IO Char". If
> this function was equivalent to World -> (World, a) then that would mean
> that the result is completely determined by the input World value.

As a world value sceptic myself, I am reluctant to say this, but in
all honesty I don't think that this argument holds. If I understand
you correctly your objection is that getChar should never block, it
should get a character instantly because the information about which
character will eventually be got should already be embedded in the
input world value. Unfortunately, time plays no part in Haskell semantics,
so I don't think the fact that getChar (or any other function) may
take an arbitrary ammount of time to return a value (when implemented
as a part of a program running in 'real time') can be regarded as
inconsistent.

Regards
-- 
Adrian Hey

Reply via email to