Talk:Haskell/Preliminaries

Any program that compiles is guaranteed to not have type errors in it.
Your statement that "Any program that compiles is guaranteed to not have type errors in it." is not always true. With use of unsafePerformIO on unsafe things you can actually get a type error, for example test :: IORef [a] test = unsafePerformIO $ newIORef [] main = do       writeIORef test [42] bang <- readIORef test print (bang :: [Char]) (taken from http://www.haskell.org/ghc/docs/7.0.3/html/libraries/base-4.3.1.0/System-IO-Unsafe.html)