The following code:
import IO
import System(getArgs)
main = do
args <- getArgs
let l = length args
if l == 0
putStrLn "foo"
else
putStrLn "bar"
generates a parse error for the if-else clause. I have tried using curly braces to no avail.
Help!
Just to demonstrate my comment to Mark’s answer,
is legal Haskell.
With GHC 7.0’s
{-# LANGUAGE RebindableSyntax #-}extension, you can even get away with(Shamelessly aped from blog.n-sch.de.)