Thursday, March 11, 2010

GHC DO syntax desugaring is very intuitive and conforming

{-# LANGUAGE NoImplicitPrelude #-} module Main where
import Prelude (putStrLn, (+), (*), show)

return a = a
infix 1 >>=; a >>= b = b a
infix 1 >>; a >> b = b a
fail a = a
fromInteger a = a

test = do
x <- return 1
y <- return 2
test2 x 10
test3 y

test2 a b = a + b
test3 a b = a * b

main = putStrLn (show test)

No comments: