while :: ( Boolean) -> ( a) -> () while cond body = loop () where loop _ = if cond then do body ; loop () else () main = "FOO" -- FOO