Explain why we can do these "weirds" things: `let a: int = return` `let y: int = match x { true => 1, false => break };`