grammar: accept `public` as a valid visibility