
2010/7/31 David Leimbach
Haskell's great and all but it does have a few warts when it comes to how much real trust one should put into the type system. Some compromises still exist like unsafePerformIO that you can't detect simply by looking at the types of functions.
Okay, you should look into modules' imports. This worked well for Ada (as far as I can remember - but I didn't program, i just read a book;) and wasn't concern back then and isn't now.
In order to live up to the hype and the marketing around Haskell, really things like unsafePerformIO should not be allowed at all.
You can use Haskell to generate quite safe code and that generator will use much of haskell type system while not suffering from unsafePerformIO.
The type of unsafePerformIO $ fireTheMissles >> return 3 ::Int is just Int after all. Does Singularity also have such back doors?
This is what new Microsoft OS Barrelfish does: http://www.barrelfish.org/fof_plos09.pdf