erl_syntax_lib:annotate_bindings claims that the following expression binds no variables: receive X -> ok end. The problem seems to be that vann_receive_expr requires the timeout action to bind X too, even though there's no timeout. Nick Smallbone