xs :: [Int] <- ...
does not work without `ScopedTypeVariables` (and I don't like proliferation of redundant language extensions).In Rust, sure, it's not a problem and plays well with the language.
My point is, it is easy to abuse this feature (this example is from Haskell Prelude!), even though it is indispensable in some situations (like `mempty :: a`).