What does left arrow <- mean outside a do block?
问题 I came across with the following code recently and it bothers me a lot lowerSafeForeignCall dflags block | (entry, middle, CmmForeignCall { .. }) <- blockSplit block = do -- do block stuffs -- Block doesn't end in a safe foreign call: | otherwise = return block This piece of code is from https://phabricator.haskell.org/rGHCb0534f78a73f972e279eed4447a5687bd6a8308e in file compiler/cmm/CmmLayoutStack.hs line 983 I really would like to konw what is this <- in the second line. I believe