Note that this is same desugaring for normal let
let x = y in F <===> (\x.F)(y)
just replacing function application with a different function (>>=).