Haskell isn't like Java byte code in having a single semantics for a program irrespective of where it is run.  In particular, "Int" has a platform-defined width -- so the same (pure) code can yield different answers on different machines.

numCapabilities was also a "leak" of platform information, which did not require IO. But, happily, now it does not appear in the [Trustworthy] module, Control.Concurrent.

Ok, what else?  What other holes are there that allow my pure functions to change their answer on different machines?  I'm making a list of these in a paper and I want to make sure I give a full account.

Thanks,
  -Ryan