check return expressions
added error message for coercion errors
removed always succeeding coercion check
fixed error reporting for return expressions