And my own answer is "no".  Otherwise, dodgy would have value true, false, or bottom, rather than the value true-or-false-depending-on-the-machine.

On Mon, Mar 23, 2009 at 9:39 AM, Conal Elliott <conal@conal.net> wrote:
Oh!  I think there's a misunderstanding here.  I'm not talking about MachineInfo as visible in the types.  I'm talking about Int itself having a MachineInfo-dependent semantic model (something like MachineInfo -> Z, where MachineInfo, ->, and Z are *semantic* types, not Haskell types).

Making my question more specific: Can (>) on Int be given a compositional semantics, i.e. a semantics as [[Int]] -> [[Int]] -> [[Bool]], where [[Int]] = MachineInfo -> Z and [[Bool]] = {bottom,false,true} (with the usual ordering)?

  - Conal


On Mon, Mar 23, 2009 at 9:34 AM, Jake McArthur <jake@pikewerks.com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Conal Elliott wrote:
| The question I'm asking is this: Assuming compositional semantics, can
| [[Bool]] be this simple & customary three-value domain in the presence
| of an implementation-dependent [[Int]] (given that Int expressions can
| play a non-trivial role in Bool expressions)?

As I understand it, your question might be reworded like this: If we can
compose values of type (MachineInfo -> Int) to create a value of type
(MachineInfo -> Bool), does that mean Bool is dependent on MachineInfo?
To simplify the question, I would like to rephrase it further to ask
whether the ability to construct any value of type (MachineInfo -> Bool)
means that Bool is dependent on MachineInfo. My (uneducated) reaction is
that this does not mean that Bool is dependent on MachineInfo any more
than the ability to construct a value of type (forall a. a -> Bool)
means that Bool is dependent on everything.

- - Jake

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknHufsACgkQye5hVyvIUKnahACgq6JZLcSePAJ4RLylPyz3X2DC
NwMAoLQilWKYfUf12BJhUle52bP/zM2J
=NN7V
-----END PGP SIGNATURE-----