Haskell do notation
do x1 <- expr1 x2 <- expr2 expr3 -- Is equivalent to: expr1 >>= (\x1 -> expr2 >>= (\x2 -> expr3))