View the Project on GitHub tavrinky/site

Haskell myths:

#Do statements need not end in return, if you don’t want. However, you may convert any do statement into one that ends in return.

For instance, consider the following do statement.

  msg <- getLine
  putStrLn msg 

This is equivalent to

  msg <- getLine 
  result <- putStrLn msg 
  return result 

(This also happens to be equal to do { msg <- getLine; putStrLn msg; return ()}, but this is only because putStrLn :: String -> IO ().)

#In the absence of extensions, the number of terms with inferrable types is the same as