Talk:IO Semantics

From HaskellWiki
Jump to: navigation, search

I don't understand in what sense this IO definition is a "semantics". Conal 04:49, 12 December 2008 (UTC)

It provides a concrete definition of IO that can be compared for equality to know if two IO programs are equivalent or not. --Roconnor 03:54, 3 December 2009 (UTC)

Maybe so. Thanks. For a semantics, I think I'd want a lot more equalities than the representation by itself provides, especially involving SysCallName.

Also (raising a new question), I don't see this semantic model at all addressing concurrency, which is a huge semantic complicator for imperative computation. Conal 08:13, 3 December 2009 (UTC)

You are correct that it doesn't. IOTree is essentailly a representation of (uniformly) continuous functions between streams of digits (aka 2^N --> 2^N) (see Peter Hancock's "eating"). I recall Bas Spitters suggesting that making this even more higher order in some way that I forget could be used to capture concurrency, but I never understood the details and haven't thought about it for a few years. I should look at my email archives. --Roconnor 04:18, 19 February 2010 (UTC)