Here are a few thoughts.
a >>= b is an application, like any other application, so from a syntactic point of view, Haskell clearly has no statements, only expressions.
(., , ) "" "" Haskell.
>>= , , a >>= b WHNF. "" "" IO .
"" . , foo a >> foo a let bar = foo a in bar >> bar, foo, IO .
, , , , . , C C. C , , C . . C- .
Haskell, , C : , , , C.
, , , , , .
, IO - , , , Haskell .